現役エンジニアのブログです。 主にモバイルアプリ開発に役立つ技術メモやTipsを発信しています。
現役のエンジニアです! 東証一部上場企業で働いていました! リードエンジニアの経験もあります^ ^
|
https://twitter.com/dasuko10 |
---|
UITableViewとは? Storyboardでの設定 セクションが一つの場合の実装 セクションが二つの場合の実装 参考 UITableViewとは? UITableViewは垂直方向にスクロールできるビュー上にコンテンツを行単位で表示することができます。 iOSの設定アプリの各設定メニューのリストのようなレイアウトです。 関連する行をセクションとしてグループ化することも可能です。 Storyboardでの設定 まずは、Storyboard上でViewControllerにTableViewを配置してみます。 次にこのTableView上にTableViewCellを配置します。 そしたら…
【Swift】Alamofireを使ってHTTP通信を実装してみた
はじめに インストール CocoaPods Carthage Swift Package Manager インストールしてみる 使ってみる 簡単なGETリクエスト responseJSON responseString responseDecodable 簡単なPOSTリクエスト レスポンスの検証 参考 はじめに 今回はAlamofireというiOS開発向けHTTP通信ライブラリを使ってHTTP通信を実装してみたいと思います。 AlamofireのGithubのリポジトリはこちらです。 github.com インストール まずは、インストールです。 Githubでそのままダウンロードしてもいい…
はじめに 実装 プロパティ selectedIndex selectedViewController tabBar デリゲート 参考 はじめに 今回はUITabBarControllerを使ってみたいと思います。 公式ドキュメントはこちらです! Apple Developer Documentation UITabBarControllerは複数のViewControllerを管理してくれるContainerViewControllerで、 画面の下部にタブが表示され、ユーザが選択したタブによって表示するViewControllerを切り替えてくれます! UIPageViewControlle…
コメントでプログラミングに関する質問を募集します! 私自身も全ての分野に精通しているわけではないので、100%回答できるわけではないですが、 一緒に悩み、考えることはできます! ちなみに自己紹介記事はこちら dasuko.hatenadiary.jp 大切なのは思考のプロセスです! ちなみに私自身は主にモバイルアプリの開発をしています! また、質問がない方でも気軽にコメントしてください^ ^ プログラミングは時には大変な時もあると思いますが、 助け合いこそ大事だと思うので、みんなで助け合い、みんなで更にスキルを高められるように頑張りましょう^^ (もちろんプログラミング以外のご意見や質問もお待…
はじめに 実装してみる プロパティ 実行してみる 参考 はじめに 今回はUIPageControlを使ってみます! 公式ドキュメントはこちらです。 Apple Developer Documentation UIPageControlは水平方向にページング用のドットを複数表示します。 これだけだと伝わらないと思うので、最後にgif載せます! 今回の実装では、前回のUIPageViewControllerを使用しています。 dasuko.hatenadiary.jp 実装してみる 今回は前回使ったUIPageViewControllerと組み合わせてUIPageControlを使ってみたいと思い…
【Swift】PageViewControllerを使ってみる!画面遷移の実装
はじめに PageViewControllerを使ってみる ViewControllerの設定 DataSource TransitionStyle PageCurlの場合 Scrollの場合 参考 はじめに 今回はUIPageViewControllerを使ってみます! 面倒なのでStoryboardは使わずにやってみます! UIPageViewControllerはこちらです! Apple Developer Documentation PageViewControllerを使ってみる 今回は import UIKit class PageViewController: UIPageVie…
Realmとは Realmの特徴 データベースアクセスが高速 実装がシンプル インストール CocoaPodsでインストール 実装 Realmの初期化 モデルの定義 オブジェクトの取得 オブジェクトの追加 オブジェクトの更新 まとめ 参考 Realmとは Realmとはモバイル向けのデータベース管理システムライブラリです。 オープンソースで実装も確認することができます。 github.com iOSはこちら github.com ちなみにRealmがサポートしている言語はSwiftだけではなく、以下のような言語をサポートしています。 Objective-C Swift Java Kotlin …
世の中の人全員が幸せになる方法を考えてみた(みんなで幸せになりたい(*^^*))
こんにちは!dasukoです(⌒▽⌒) 今回はみんなが幸せになるにはどうしたらいいかというのを考えてみたいと思います( ^ω^ ) どういうときに幸せを感じるか? まず、人はどういう時に幸せを感じるか?を考えてみたいと思います。 これは完全に個人の見解となるので、間違っていたら指摘してください( ̄∇ ̄) 自分が好きなこと、熱中できることをやっているとき 課題を解決できたとき、目標を達成できたとき 人から褒められたとき、認められたとき 充実感を感じたとき 個人的にはこの4つかなと思ってます。 お金持ってたら幸せを感じるんじゃない?と思う人もいるかもしれませんが、 それは完全にお金を持っていない人…
今更ですが、自己紹介をしてみますw
はじめに 単純な実装 テキストの変更通知を受け取る Modfier disableAutocorrection border keyboardType autocapitalization textContentType multilineTextAlignment 最後に 参考 はじめに この記事ではSwiftUIのTextFieldの使い方について説明します。 TextFieldはその名の通り読み書き可能(編集可能)なテキストを出力します。 TextField には文字列のバインドを指定し、ユーザがテキストフィールド内のテキストを編集する度に 文字列の変更通知を受け取ることができます。 ち…
【Swift】Swiftでコルーチン使ってみた(SwiftCoroutine)
はじめに コルーチンとは SwiftCoroutineの特徴 プロジェクトへ導入 使ってみる Coroutine Future Promise 最後に 参考 はじめに 今回はSwiftでSwiftCoroutineというライブラリでCoroutineを使ってみたいと思います! ライブラリのリポジトリはこちらです! github.com iOS、macOSなどでの動作を保証する最初のコルーチンライブラリみたいですね! コルーチンとは サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはいったん処理を中断した後、続きから処理を再開できる。接頭辞 co は協調を意味す…
はじめに 簡単な使い方 ButtonStyleの指定 DefaultButtonStyle PainButtonStyle BorderlessButtonStyle 枠線の指定 文字・ボタンサイズの指定 文字カラーの指定 ボタンの背景色の指定 ボタンの角を丸くする 最後に 参考 はじめに 今回はSwiftUIのButtonの使い方について説明します。 Buttonはその名の通りボタンを表示します。 struct Button<Label> where Label : View ちなみにSwiftUIの導入方法についてはこちらで説明しています。 dasuko.hatenadiary.jp テキ…
【SwiftUI】SwiftUIでUISearchBarを使う(UIKitを使う)
はじめに UIViewRepresentable 実装 makeUIView updateUIView makeCoordinator 使用してみる 参考 はじめに SwiftUIはとても便利ですが、UIKitにあるUIで対応していないものも多いです。 その際どのようにすれば対応できるかというのをご紹介したいと思います。 今回はUISearchBarをSwiftUIで使ってみたいと思います!! (もちろんそのままSwiftUIのbodyの中に書くことはできないです) SwiftUIの導入方法についてはこちらの記事を参考にしてください! dasuko.hatenadiary.jp UIViewR…
はじめに Textを表示してみる テキストのスタイルの指定 bold italic テキストの色の設定 取り消し線 アンダースコア フォントの指定 標準フォントを比較してみる テキストのフォントの太さの指定 複数行の時の配置の指定 テキストの最大行数の指定 最後 参考 はじめに この記事ではSwiftUIのTextの使い方について説明します。 Textはその名の通り(読み取り専用の)文字列を出力します。 ちなみにSwiftUIの導入方法についてはこちらで説明しています。 dasuko.hatenadiary.jp テキストのAlignmentについてはこちらで解説しています。 dasuko.h…
【SwiftUI】ObservableObjectを使ってモデルデータを管理する(@ObservedObject、@StateObject、@EnvironmentObject)
はじめに 監視可能なモデルデータを宣言する 監視可能オブジェクトの変更を監視する ObservedObject StateObject EnvironmentObject まとめ 参考 はじめに 昨今では様々なアーキテクチャがありますが、そのほとんどがView(UI)やロジックと別にモデルデータを定義し、 これらを分離することにより、テストが容易になったり、可読性が上がったります。 SwiftUIではデータモデルクラスのオブジェクトを監視可能オブジェクト(ObservableObject)として定義することにより、 それらのプロパティが変更されたときに自動でViewを更新する仕組みがあります。…
シーケンスとは filter map compactMap flatMap reduce lazy 参考 Swiftはまだまだ勉強中なので、Swiftでコレクション、シーケンスを扱う場合に重要な 高級関数をいくつか列挙し、まとめてみます! シーケンスとは 順次要素へと反復アクセスするために用意されたプロトコルです。 シーケンスという言葉自体は、連続や順序といった意味を持ちます。 順番に並んだ一続きのデータを順番に処理することを指します。 シーケンスプロトコルについては こちらに説明があります。 Apple Developer Documentation 今回紹介するシーケンスに定義されているク…
【SwiftUI】テキストのAlignmentについて(左に寄せる方法)
はじめに multilineTextAlignment View全体を左端に寄せたい場合 参考 はじめに 今回はView(特にText)を左に寄せたり、右に寄せたりする方法をご紹介します。 SwiftUIでのプロジェクトの作り方は以下の記事でご紹介しています。 dasuko.hatenadiary.jp VStackやHStackについてはこちらの記事で解説しています。 dasuko.hatenadiary.jp multilineTextAlignment multilineTextAlignmentを使えばテキストを左寄せ、真ん中寄せ、右寄せにすることができます。 Sets the ali…
StateとBinding State Binding 最後に 参考 SwiftUIでのプロジェクトの作り方、導入についてはこちらで紹介しています。 dasuko.hatenadiary.jp StateとBinding SwiftUIのViewはstructなのでプロパティの値を変更できません。 View間でプロパティのやりとりをしたい場合はStateとBindingを使います。 SwiftUIでは、親Viewで宣言したStateプロパティを子Viewに渡し、子Viewでそのプロパティ値を変更することができます。 これはStateプロパティが単なる値ではなく、ここで宣言された変数はSwift…
【プログラミング】プログラマー、実は仕事中あまりプログラミングしていない件について
はじめに 正直人による。組織によるとは思うが、 職種がエンジニア、プログラマーという職種であっても あまり仕事中にコーディングしていないという人は少なくないのではないかと思う。 私もその一人である。 これは学生や、プログラマー以外の職種の人から見れば意外なのではないかと思う。 私も学生の時は「プログラマーは仕事中ずっとコーディングしてるんだろうなー」と思っていた。 正直今では就活を終えた大学生の方がコーディングする時間はずっと多いと思う。。。。 ちなみに私の仕事の割合で言うと、 約8割は以下のような感じである。 実装に関する質問に答える 後輩の教育 よくわからない会議 それ以外の2割はコーディ…
【SwiftUI】VStack、HStack、ZStackについて
概要 HStack サンプル VStack サンプル ZStack サンプル VStackとHStackを組み合わせてみる 参考 概要 SwiftUIでは複数のViewの配置を定義するためにHStack、VStack、ZStackといったStackViewを使います。 StackViewを使用した場合、デフォルトでコンテンツを中央揃えにし、かつわずかな程よい間隔を挿入してくれます。 HStack 子Viewを水平に配置します。 サンプル item1〜item5という5つのテキストを水平に配置したい場合は以下のようになります。 import SwiftUI struct ContentView:…
【SwiftUI】SwiftUIとは?プロジェクトの作り方まで紹介(超初心者向け)
SwiftUIについて超初心者向けに導入手順を書いてみました〜
はじめに UnityにはMenuItemというメインメニューとインスペクターのコンテキストメニューにメニューアイテムを追加することができるAttributeがあります。 MenuItemの公式のドキュメントはこちら UnityEditor.MenuItem - Unity スクリプトリファレンス MenuItemの基本的な使い方 以下のようにMenuItemというAttributeを特定のメソッドに追加することにより、メインメニューやコンテキストメニューにメニューアイテムを追加できます。 [MenuItem("CustomMenu/Do Something")] static void DoS…
はじめに エンジニアのタイプ クリエイタータイプ 技術者タイプ 技術者かつクリエイタータイプ 最後に はじめに これまで10年以上プログラミングをしてきて、エンジニアには大きく2つのタイプがいるなーと感じます。 ※基本的にこれらは、個人の意見であり、偏見であり、必ずしもそうという訳ではありません。 エンジニアのタイプ それはクリエイタータイプと技術者タイプです。 ※クリエイターかつ技術者というのも存在します。 ※2つじゃなくて3つやないかい!という質問は受け付けておりません。 クリエイタータイプ このタイプの人は主にBtoC事業の会社に興味を持ちがちです。 なぜなら「誰もが知っていて、誰もが使…
はじめに C#ではTry◯◯みたいなメソッドがあり、取得できたのみ処理したい場合に 簡潔に書くことができます。 詳しくはこちらを見てみるといいと思います。 文字列が数値を表しているかどうかを確認する方法 - C# プログラミング ガイド Microsoft Docs intとかlongのTryParseが代表的かなと思います。 パースに成功すればtrueが返り、失敗した場合にはfalseが返ります。 DictionaryのTryGetValueなんかも使う人が多いのではないでしょうか docs.microsoft.com TryGetComponentとは 公式ドキュメントはこちらです。 …
【C#】DI(Dependency Injection)を使ってみた!(Unityでの実装例あり)
はじめに 今回はDI(Dependency Injection)についてまとめてみたいと思います。 Dependency Injectionとは Dependency Injectionの意味は依存性の注入です。 Wikipediaにはこのようにあります。 依存性の注入(いそんせいのちゅうにゅう、英: Dependency injection)とは、コンポーネント間の依存関係をプログラムのソースコードから排除するために、外部の設定ファイルなどでオブジェクトを注入できるようにするソフトウェアパターンである。英語の頭文字からDIと略される。 依存性の注入 - Wikipediaより引用 Depen…
【Unity】SerializeReferenceを使ってみた
はじめに 今回はSerializeReferenceを使ってみたいと思います。 ドキュメントはこちら Unity - Scripting API: SerializeReference SerializeReferenceとは フィールドをシリアル化する方法として、SerializeFieldAttributeを追加するという方法があります。 しかし、この方法でシリアル化できるのは、値型とクラスが抽象クラスやインターフェースではない参照型オブジェクトのみでした。 When Unity serializes an object, it serializes all fields as value…
【英語】オンライン英会話のレアジョブとネイティブキャンプを比較してみた
はじめに 筆者はこれまでオンライン英会話を継続して行っているのですが、 今までにネイティブキャンプとレアジョブ、二つのオンライン英会話を試しました。 なので、この二つについて比較して感想や特徴を簡単にまとめてみたいと思います。 ※アフィリエイトは一切なしです レアジョブ レアジョブの公式サイトはこちら www.rarejob.com 料金プラン ※2020/10/15現在 主なプラン プラン 一日のレッスン数 料金(月額) --- --- --- 日常英会話コース 1回 5800円 ビジネス英会話コース 1回 9800円 中学・高校生コース 1回 9800円 一回のレッスン…
【Unity】EditorでCoroutineを使う方法!Editor Coroutines
はじめに インストール 実装 参考 はじめに 今回はEditor Coroutinesをご紹介します。 Editor拡張でCoroutine(コルーチン)を使いたい!ってことがたまにあるかと思います。(HTTPリクエストを実装するときとか) このパッケージを使えば、Editor上で簡単にCoroutineを使うことができます! これはUnityのPackage Managerから追加することができます。 公式ドキュメントはこちらです。 Namespace Unity.EditorCoroutines.Editor Editor Coroutines 1.0.0 インストール Edito…
はじめに エンジニアのキャリアについて少し書いてみたいと思います。 まずは、筆者のキャリアとしては、一部上場企業、未上場企業でそれぞれ正社員のエンジニアとしての経験があります。 正社員としてのキャリアプランについて エンジニアとしてのキャリアプランには、まず、正社員として働き続ける場合は、大きく分けて以下の二つがあると思います。 エンジニアとしてスキルを磨き続けてスーパーエンジニアになる エンジニアとしてのスキルを活かして、マネージャーやデザイナーなど他のポジションにも挑戦する エンジニアとしてスキルを磨き続けてスーパーエンジニアになる これは、要は一つのことだけを極めるパターンです。 と言っ…
はじめに アウトプット方法 ブログやWikiにまとめてみる 人に教える 何か簡単なサービスを作ってみる 最後に はじめに 今回は筆者のエンジニアとしてのアウトプット方法についてまとめてみたいと思います。 今回はあくまでインプットではなくアウトプットにフォーカスしてお話します。 アウトプット方法 筆者のエンジニアとしてのアウトプット方法は主に以下の3つがあります。 ブログやWikiにまとめてみる 人に教える 何か簡単なサービスを作ってみる 結構ベターかもしれませんが、順番に解説します。 ブログやWikiにまとめてみる 筆者が技術ブログをやっているのもアウトプットのためです。 他にもQiitaとか…
はじめに Unityは3dゲームを容易に開発することのできるゲームエンジンです。 3dゲーム開発ではカメラを複数配置して、それらを切り替えるといった表現をすることが多くあります。 今回はカメラの切り替え方法についてご紹介します。 どのようにカメラが選ばれるのか では、シーン上に複数のカメラが存在する場合、どうやってカメラが選択されるのでしょうか。 それはCameraコンポーネントのdepthというプロパティの値で決まります。 カメラのレンダリング順序という意味のカメラ深度。 低い depth のカメラは高い depth のカメラよりも前に描画されます。 これは、シーン内に複数のカメラがあり、そ…
エンジニアならまず、アルゴリズムやデザインパターンを勉強するべき
はじめに アルゴリズムやデザインパターンが重要である理由 はじめに 筆者はC++やObjectiveCやJavaやC#で主にモバイルのアプリ開発をしています。 そんな筆者がエンジニアという職の経験を通して、まずエンジニアとしてまず、勉強するべきことはアルゴリズムやデザインパターンであると感じたので、 その理由について説明したいと思います。 アルゴリズムやデザインパターンが重要である理由 何かを開発する時に、まず開発する環境や言語を決定すると思いますが、 これらはその時点での最適解が選ばれるに過ぎません。 つまり、これらは可変なのです。 来年、同じ開発をするとしても、同じ開発環境・同じ言語が選ば…
はじめに 上司から言われたことをただやっているだけだと、その人には何の価値もありません。 なぜならその人がいなくなっても代わりが効いてしまうからです。 もちろん要求の難易度にもよるでしょう。 それをできる人がこの会社に自分しかいない! そんな要求であれば、話は別です。 しかし、ほとんどの人がそうではないはずです。 同じ会社の別の人が自分のタスクをやっても、だいたい同じ結果が得られるのではないでしょうか。 AIが職を奪うなんて言いますが、その対象となるのは、このような人たちだと思っています。 (AIが本当に職を奪うかは議論の余地があるとして) 働く上でのその人の価値とは 言われたことをやる!とい…
何かを始めるにしても勉強の仕方を知らないと、ただ時間を無駄にするだけになる
はじめに 勉強するスキル 最後に はじめに 何かを勉強するタイミングとは、様々だと思います。 何か新しいことを始める 企業する 新しい職種にチャレンジする 資格を取る 今までに経験のない仕事を任された しかし、モチベーションがあっても、いくら努力したとしても勉強の仕方を知らないと時間を無駄にするだけだと思います。 多くのビジネス関連のインフルエンサーは「なんでもいいから、今すぐ行動しろ」みたいなことを言っていますが、 まず、問題点って行動するしないよりも、学び方が間違っている人が多いのかなという気がします。 勉強するスキル 勉強する、何かを習得するというのはスキルです。 本を読んだとしても、実…
今週のお題「運動不足」 はじめに トレーニングメニュー トレーニングの頻度について 食事について 最後に はじめに 今外出自粛が続いていて、運動不足になっている人も多いと思いますが、 エンジニアという職種は特に運動不足な人が多いのではないかと思います。 運動することが好きじゃない上に(偏見)、常に椅子に座って作業をしているので、 全く動かないという人も多いんじゃないでしょうか。 今回は筆者が運動不足にならないためにどんなことをしているかを書いてみたいと思います。 トレーニングメニュー トレーニングは絶対にジムに行ってやっています! 他の人がいてモチベーションも上がるし、いろんなマシンがあるので…
はじめに まずは簡単に実装してみる 少しだけ拡張してみる 具体的な実装 最後に 参考 はじめに 前回このような"ゲームデータの保存と読み込み方法"に関する記事を書きました。 dasuko.hatenadiary.jp 今回は実際に実装してみたいと思います。 まずは簡単に実装してみる まずはPlayerPrefsを使って簡単に実装してみます。 ※セーブデータを定義したDataクラスがあると仮定します。 // 保存 var json = JsonUtility.ToJson(data); PlayerPrefs.SetString(key, json); // 読み込み var json = Pl…
はじめに セーブデータ実装の選択肢 PlayerPrefsに保存する PlayerPrefsとは ファイルに保存する 最後に 参考 はじめに 今回はゲームデータの保存(セーブ)と読み込み(ロード)の実装方法をご紹介したいと思います。 今回テーマとするセーブデータとは、サーバサイドではなく、クライアントサイドで保存するデータを対象とします。 セーブデータ実装の選択肢 大きく分けて以下のような選択肢が考えられます。 PlayerPrefsに保存する ファイルに保存する PlayerPrefsに保存する PlayerPrefsとは Unity公式のドキュメントはこちら UnityEngine.Pla…
【Unity】Unity標準のJsonUtilityを使ってシリアライズ
はじめに UnityでJSONデータをシリアライズ、でシリアライズといった操作をする時に、どうやって実装されていますか? Unityには標準でJSONデータを操作するための機能があります。 それがJsonUtilityです。 今回はこのJsonUtilityについてご紹介します。 公式ドキュメントはこちらです。 UnityEngine.JsonUtility - Unity スクリプトリファレンス まずは各メソッドについて説明します。 ToJson public static string ToJson (object obj); オブジェクトをJsonフォーマットの文字列へと変換します。 ※…
【就職活動】転職・就職活動の前にするべき自己分析(マインドマップ)
はじめに 転職活動・就職活動の準備としてやるべきことは非常にたくさんあると思うし、 やるべきことがたくさんありすぎる!と悩んでいる人も多いのではないと思います。 就活の成功の鍵は如何に相手にほしいと思わせるかだと思います。 それに尽きます。 面接官に「この人と一緒に仕事がしたい!」「この人のことをもっと知りたい!」 面接や就職活動は恋愛と似ていると表現される方もいますが、まさにそうだと思います。 日々考えながら過ごす。思い出に残った経験・学びのあった経験などはメモするべき!ということは 以下の過去の記事に書いたので参考にしてみてください。 dasuko.hatenadiary.jp しかし、自…
「ブログリーダー」を活用して、dasukoさんをフォローしませんか?