2020-11-01から1ヶ月間の記事一覧
今回は、ウェブサイトやアプリに広告を出す際に使用する Google Ad Manager・AdSense・AdMob の違いを簡単にまとめていきたいと思います♀️ AdSense AdSense はウェブで上でタグを埋め込むことで、広告を自動配信してくれるサービスです。 AdMob AdMob はモ…
今回は、Swift の UserDefault で簡単に自分が作成したクラスを保存する方法を紹介したいと思います それではやっていく やることは、簡単で Entity を Codable に準拠させることで、Data型への encode と decode を簡単にします。 struct FieldData: Coda…
みなさん Kotlin は書いていますか?僕は、最近書き始めました Swift との構文の違いを比較しながら勉強していくのが、結構楽しくてハマっています 今回はそんな Kotlin で使用する型などを簡単にまとめてみたいと思います。 基本の型 まずは、Kotlin Langu…
Set とは? Swift の Collection Type の一つで、配列の順序が重要ではなく重複する値が無いような配列を作成したい場合に Array よりも便利に使用することができます。 また、格納する値は Hashable に準拠する必要があり、これにより様々な便利メソッドが…
みなさん、最近 CollectionView は使っていますでしょうか?CollectionView っレイアウトの方法がいっぱいあってどれを使うべきか結構迷いますよね〜♀️ 今回はそんな CollectionView を使って、ページをめくるようにスクロールすることのできる UI を作って…
みなさん Swift で正規表現使ったことありますか?僕は、iOSアプリ開発はじめたての頃、よく分からずググりまくっていました 今回は、そんな少しとっつきづらい正規表現を改めてまとめることで、再理解しちゃおうぜ!という記事です 正規表現とは? 文字列の…
あるプロジェクトで、Xcode11.4.1 を使用していて iOS14.1 にバージョンアップした iPhone で実機インストールができないという問題が発生していました。 Failed to start remote service on device. Please check your connection to your device. 以前紹介…
みなさん、Android の RecyclerView は使っていますか?僕はやっと最近触りはじめました(最近 Android はじめたので)♀️ なので、使ったついでにその実装方法の手順を今日は簡単に紹介したいと思います! それではやっていく 1.アプリレベルの Gradle に Rec…
今回は、Android(Kotlin) で Firestore を使ってデータを取得するまでの手順を簡単に紹介したいと思います 前提条件 APIレベル16(Jelly Bean) 以降が対象 Gradle 4.1 以降 Jetpack(AndroidX) を使用 新規 Firebase プロジェクト作成済み Android アプリも登…
とりあえず Firestore コンソール上で作成した Collection データを取得しようと下記のようなコードを書いてエミュレータで実行すると、Log になにも表示されないという問題がありました val db = FirebaseFirestore.getInstance() db.collection("countries…
みなさん bash は使っていますか?macOS Catalina からデフォルトシェルが zsh になってから、zsh を使ってる人が多いと思いますが、僕はいまだに bash ですので♀️ 今回はそんな bash の設定を行うために使用される .bash_profile と .bashrc がなんなのか…
みなさん、Xcode12 への移行は済みましたか?僕はライブラリの更新などにかなり苦しめられましたがなんとか、Xcode12 の住人になることができました♀️ また、Xcode の移行によって他のプロジェクトと Xcode のバージョンの差異があり、Xcode CLI を切り替え…
今回は新しいデバイスの追加により、fastlane で管理している provisioning profile を更新する必要があったため、その作業メモを残しておきます 作業していくっ とりあえず、オプションの付与などを更新毎に設定するのは面倒なので、Fastfile に、Provisio…
Part-1 の続きから進めていきます♀️ Linux コマンドのファイルはどこにあるの? では、試しにディレクトリの中に何があるのか確認する時に使用する ls コマンドがどこにあるのか調べてみましょう。 $ which ls /bin/ls どうやら bin というディレクトリの中…
みなさん Linux コマンド使いこなせてますか?僕は使いこなせていません。 ので、今回は Linux コマンドで気になって調べたあれやこれやを紹介したいと思います♀️ Linux とは? ひとまず普段使っている Linux とはなんぞやというところからググってみました…
今回は iOS14 での PhotoLibrary 周りの更新を簡単にまとめます。主なアップデートは Limited Photos Library と、Photos Library access level の二つです。 Limited Photos Library Limited Photos Library はその名の通り、アプリにアクセスを許可する写…
Swift Standard Library は、モジュールのインポートが何もない状態でも動作する、Swift プログラムを作成するためにの基本的なシンボルの集まりです。また、Swift Standard Library は Swift で記述されていますが、他の Swift コードを構築するためのコア…
今回は、fastlane match を使用して新しいメンバーに開発証明書を共有する際に、少し詰まったポイントをまとめておこうかと思います 問題点 新しいメンバーに、fastlane match で証明書を取得してもらおうとしていた時、なぜか Cloning remote git repo... …
みなさん Apple の 「One More Thing」は見ましたか?日本時間では 11/11 午前3時に開催されたので、もしかしたら仕事があり、僕のようにまだ見ていない人が多いのではないでしょうか(そのうち見たい) 今回はそんな「One More Thing」で発表された、Apple …
Android Studio で使えるはずのショートカットが使えないということが起きて10分ほど無駄な時間を過ごしてしまったため、解消法をメモしておきます (Android 初心者です ) 解消法 今回の問題は、同じショートカットキーが複数の機能に割り当てられていたため…
個人で開発中のアプリで RxSwift を使用した簡易インクリメンタルサーチを実装したので、その方法を簡単にまとめたいと思います 作業していくっ 今回行うインクリメンタルサーチの仕様は下記の通りで、入力した ID が使用可能かどうかを調べるためにこの機…
Hot な Observable から流れてくるイベントで、特定の回数だけイベントを受け取りたいということはよくあるかと思います。そんな時は .take() を使って回数を絞ることができます。 下記はストリームに流れてきたイベントを Observable が一度受信したら、購…
iOS アプリ開発をしていると、Xcode が対応していない iOS バージョンに端末の OS を上げてしまうことが多々あるかと思います。そんな時は、下記の手順で Xcode のサポートする iOS バージョンを追加します。 まずは、iOS のサポートファイルをまとめてくれ…
res/drawable で右クリックして、メニューから New/Vector Asset を追加します。 ローカルに svg で書き出した画像を保存しておいて、そのファイルがあるパス・Size・Opacity などを設定して Next を選択します。 最後に Asset を追加するパッケージを確認し…
今回は、Swift の @autoclosure アノテーションについて書いていこうと思います。 @autoclosure とは? @autoclosure アノテーションをつけてクロージャーを実装すると、呼び出し側で引数として渡した値をクロージャーとして扱うことのできる機能です。@auto…
Swift を書いていると、Class を使うか Struct を使うか迷う時が結構あり、どちらを使うべきか悩んだ時に判断する指標となることを簡単にまとめていきたいと思います。 参照: https://blog.usejournal.com/swift-struct-or-class-how-to-choose-d22d987bac3d…
SE-0286 - Forward-scan matching for trailing closures SE-0279 "Multiple Trailing Closures" threaded the needle between getting the syntax we wanted for multiple trailing closures without breaking source compatibility. One aspect of that co…
SE-0269 - Multi-Pattern Catch Clauses Swift は開始以来、末尾のクロージャのラベルを省略できる Trailing closure という構文をサポートしてきました。 // Without trailing closure: UIView.animate(withDuration: 0.3, animations: { self.view.alpha =…
SE-0276 - Multi-Pattern Catch Clauses Currently, each catch clause in a do-catch statement may only contain a single pattern and where clause. This is inconsistent with the behavior of cases in switch statements, which provide similar func…
SE-0269 - Increase availability of implicit self in @escaping closures when reference cycles are unlikely to occur Modify the rule that all uses of self in escaping closures must be explicit by allowing for implicit uses of self in situati…