2020-09-01から1ヶ月間の記事一覧
ライブラリ依存管理ツールである Carthage のコマンド一覧をまとめていこうと思います。リストは v.0.34.0 のものなので、最新バージョンの方は公式の Repo を確認してみてください。 github.com コマンド一覧 コマンド 内容 archive Framework の zip を生…
ライブラリを Check out と使用とコマンドを実行すると、下記のような Error が、、 $ carthage bootstrap A shell task (/usr/bin/env git clone --quiet "") failed with exit code 128: fatal: unable to open "": No such file or directory fatal: inde…
今回は iOS アプリがどのようなライフサイクルで動いているのかを簡単にまとめて行きたいと思います。なんとなくボヤッとした感じでライフサイクルを認識していた人はぜひ目を通してみてください アプリの状態 状態 内容 Not running アプリは開始されていま…
Xcode12 に対応するためにちょこちょことマイナーアップデートをしていた時に発生したエラーについて共有します。この Error は調べたところ色々なケースで発生しているので一概には言えませんが、Carthage のアップデート周りで発生した場合はこの解決方法…
学ぶこと Bundle クラスを使用して、ある Fragment から別の Fragmen に引数を渡す方法 タイプセーフのために Safe Args Gradle プラグインを使用する方法 Share menu item をアプリに追加する方法 implicit intent とは何か、それを作成する方法 すること N…
学ぶこと navigation graphs の使用方法 アプリで navigation path を定義する方法 Up button とは何か、および button を追加する方法 オプションメニューの作成方法 navigation drawer を作成する方法 すること navigation library と Navigation Editor …
学ぶこと Fragment を静的にアプリに追加する方法 すること Activity 内に Fragment を作成します アプリの概要 このレッスンを構成する3つのコードラボでは、AndroidTrivia というアプリで作業します。完成したアプリは、ユーザが Android コーディングに…
Firebase + BigQuery + Redash で分析基盤を作ろう 今回は、Firebsae Analytics で取得しているデータを Big Query + Redash を使って可視化できるようにする方法を簡単にまとめていきます。 手順 Firebase と BigQuery 連携 BigQuery と Redash 連携 Fireba…
学ぶこと アプリで ConstraintLayout を使用して View を配置する方法 TextView の背景色を変更する方法 ベースライン制約を使用して View を text の位置に合わせる方法 View のグループから horizontal チェーンと vertical チェーンを作成する方法 するこ…
今日も前夜の記事に続きiOSDC2020のセッションを聞けた範囲でおもしろかったもののまとめをしておこうと思います。 ※ よかったら毎日ブログ書いてるので、暇な時に見てください yamato8010.hatenablog.com 4年間運用されて表示速度が低下した詳細画面を改善…
学ぶこと Data Binding ライブラリを使用して、findViewById() への非効率な呼び出しを排除する方法 XML からアプリデータに直接アクセスする方法 すること findViewById() の代わりにデータバインディングを使用し、レイアウト XML から直接データにアクセ…
iOSDC2020 の HomeKit に関するセッションが面白かったので、セッションで聞いた内容含め簡単にまとめておこうかと思います。暇があったら何か作ってみたい HomeKit とは? iOS、iPadOS、macOS、watchOS などの Apple製品からデバイスを管理・コントロールで…
ReactorKit はリアクティブかつ一方向のデータフローをサポートするための Framework です。ReactorKit について詳しく知りたい場合は以前の記事を参照してください。 yamato8010.hatenablog.com yamato8010.hatenablog.com ReactorKit はユーザアクションか…
前回に続き、今回は Codelabs2-2 をやっていきたいと思います 学ぶこと EditText view を使用してユーザ入力を取得する方法 EditText view のテキストを使用して、TextView にテキストを設定する方法 View および ViewGroup の操作方法 View の可視性を変更…
今回は RxSwift(RxCocoa) でたびたび使用する Subject・Relay の違いや Observable との違いについて簡単にまとめようと思います。また、Trait などはまた別の記事で触れようかと思います。 Subject・Relay とは? これらのクラスはイベントの検知もできます…
前回に続き今回は、Codelabs Kotlin の02.1 をやっていきたいと思います 学ぶこと view と ViewGroup の操作方法 LinearLayout を使用して、Activity の View を配置する方法 ScrollView を使用してスクロール可能なコンテンツを表示する方法 View の開始性…
今回は、CocoaPods や Carthage などでインストールしたライブラリなどを Storyboard・xib などで使用する場合に時々発生する。[Storyboard] Unknown class 〇〇 in Interface Builder file. の対処法を残しておこうかと思います。 原因・解決法 今回のケー…
今回は View の制約を更新する際などに登場する updateConstraints() について簡単にまとめていきます なんのメソッド? このメソッドはUIView のインスタンスメソッドで、View の制約を更新する際に呼び出します。基本的にはシステム側がレイアウトパフォー…
学ぶこと Kotlin および Android の開発者向け情報とリソースの入手先 アプリのランチャーアイコンを変更する方法 Kotlin をしようして Android アプリ構築をしている時にヘルプを探す方法 やること 全てのレベルの Kotlin Android 開発者が利用できるリソー…
今回も初学者向けに階層の異なる特定の View の座標を取得したい時に使用する convert() 関数の使い方を簡単に説明していきたいと思います。 実際に使ってみる 下記のような階層の View を参考に convert() メソッドを使って見て座標を取得してみます。 緑…
今回は初学者向けに上限・下限値を設けた値の取得が便利にできる max・min 関数を紹介したいと思います。 max max() 関数は指定された引数の中で最も大きい値を返します。つまり、これ以上小さくしたくないという値を引数に含めることで下限を設定して値を取…
今回は AutoLayout 関連で、なんとなく使っていて詳しく理解できていなかった Content Hugging Priority と Content Compression Resistance Priority を調べていきたいと思います。 Content hugging priority とは? この Priority(優先度) は View が本来…
前回のコードラボに続き、今回は01.3のコードラボを学習していきたいと思います。 前回の記事 yamato8010.hatenablog.com 学ぶこと アプリのリソースにファイルを追加する方法 アプリのレイアウトで画像を使用する方法 アプリのコードで View をより効率的に…
最近はほぼフルリモートで仕事をすることが多く、Github などで日々のタスクを Donelist として管理することが多くなってきました。そんな時に、Donelist の Issue を自動で管理できたら便利ですよね 今回はそんなちょこっと面倒な Issue の管理を Github Ac…
RxSwift などで処理をつなげて書いていると、ここはメインスレッドで、ここはバックグランドスレッドでなどと、処理によってスレッドを切り替えたい場合があるかと思います。そんな時は、Observable のプロパティとして提供されている subscribeOn または、o…
GCD とは? macOS、iOS、watchOS、tvOS のマルチコアハードウェアでの並列実行タスクをするために提供されている言語機能で、開発者は DispatchQueue を使用してスレッドでの処理を管理することができます。また、GCD の Queue は追加されたタスクの順番ごと…
先日、うっかり ViewClass で指定した Xib で作成したカスタムビューのプロパティにアクセスし下記のように Error を出してしまいました。初心者の頃はよく分からずググったものコピペ なりで回避していましたが、そもそも何故これが Error になるのかを今回…
今回は同じ型の非同期処理を RxSwift でまとめる際に使用する concat と merge の使い方と挙動を簡単にまとめとこうと思います。 concat concat() は複数の非同期処理を渡された順番で順次処理を行っていきます。サンプルは次のようになります。 let ob1 = O…
Carthage でライブラリをインストールしたり、アップデートしたりした後に、Branch をチャックアウトするとためにこのような Error が発生することがあります。このような場合は、Finder の情報を持つ拡張属性をし、Clean しビルドし直すと正常にビルドが成…
今回は初学者向けに、Swift からプログラミング言語を学び始めた人が必ずいだく map・compactMap・flatMap の違いについて簡単に解説をしていきたいと思います。また、これらの関数は積極的に使っていくことで状況に応じた使い分けなどがうまくできるように…