以下のライブラリを CocoaPods で管理していたが、Swift Package Manager(Xcode)管理に移行してみる。 SwiftLint LicensePlist Firebase AnalyticsWithoutAdIdSupport Crashlytics 以下が、その手順。 CocoaPods でのライブラリ管理を削除 まず CocoaPods …
具体的には LaunchScreen.storyboard に設定している色が、 Hex Color は同じだが、微妙に他の画面と表示が違う。 原因は Color Profile が「Generic RGB」になっていたので「sRGB」に変更したら解決。 現在の Xcode(Xcode 15)で storyboard 作ると sRGB …
プログラマのためのサバイバルマニュアル作者:Josh CarterオライリージャパンAmazon コードの話から、仕事の進め方・考え方、自身の維持の仕方など、、、 いい本だと思う。
Xcode 14.3 から CocoaPods を使用しているプロジェクトで、Archive を実行すると、以下のような rsync error... になって、アーカイブが作成されない。 rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/…
Flutter を作って何かアプリを作ってみようと思い、 NHK for School API という API を使って、アプリを作ってみた。 github.com NHK for School API を使うと NHK for School 公開されているコンテンツを API で取得できる。 (すべてが取得できるわけでな…
東京ガスの 「ずっとも電気1」(2021年5月16日をもって、新規申込受付を停止) 「基本プラン」(あたらしくできたプラン) の「電力量料金」(電力を使用した分の電気代)を計算できる Web ツールを作った。 電力量料金の計算 基本料金、燃料費調整額、再エ…
periphery を使用すると Swift プロジェクトの中で未使用なコードを特定できる。 (未使用なクラス・プロパティ、不要な public がわかる) インストールして、コマンドのオプションを調べたのでメモする。 インストール brew 経由だと brew install periphe…
GCVirtualController は iOS 15 から使用できるソフトウェアゲームコントローラー。 これを使うことで、アプリで自作のゲームコントローラーを作成しなくてよい、というメリットがある。 GCVirtualController - Apple Developer アプリを作る際に GCVirtualC…
SKStoreProductViewController を使うと、アプリから離脱せずに、AppStore で特定のアプリを表示することができる。これを使うと、アプリ内で他のアプリのインストールを促すことに使えたりする。 ただし、SKStoreProductViewController に delegate を設定…
たとえば UIView を key にして、Date を value にした Dictionary を使いたいと考えたとき。 ここで問題があるのは Dictionary の key, value は strong で参照するため、 UIView を key にするとメモリリークが発生する。(本来の UView のライフサイクル…
Travis CI を使って GitHub のプロジェクトに push した時に、自動でテストが実行されるようになったいたのを GitHub Actions に変えてみた。 GitHub actions の yaml の書き方や、Travis CI からの移行については以下のドキュメントが参考になる。 Building…
スーパーのマルエツのキャンペーンでは、レシート3000円で1口応募できる。(レシート合算可) https://www.ichance.jp/cp/maruetsu-dreamwinter/ たとえば 以下のレシートがあった場合は 600 1000 2000 2500 以下のようにまとめることで「2口応募」で…
青森県のオープンデータは「青い森オープンデータカタログ」にある。 オープンデータで作成されたものはサイト内の「アプリマーケット」というところに登録できるが、みた感じスマホアプリがなく、 アプリマーケット - 青い森オープンデータカタログAoi Mori…
ここに書いてある「デモ広告」のユニット ID を使って、テスト広告を表示させていたのだが、いつの間にか出なくなっていた。 実行時にこんなログが出る。 <Google> Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link </google>…
UIKit の場合だと UITextField の inputView に UIPicker を設定して、UITextField をタッチすると下からニュッと Picker が出てくる。ができる。 それを SwiftUI でやろうとすると、適当なものが用意されていなかったので、作ってみた。 こんな感じ。 コー…
SwiftPackageManager で配布されているパッケージを、ローカルに持ってきてそれを Xcode プロジェクトで参照して使用するメモ。 パッケージのリポジトリを clone する。 対象のアプリのプロジェクトを開く Xcode のプロジェクトツリーに、パッケージのフォル…
機械学習のフレームワークを使ったアプリを作ってみたくなり、試しに作ってみた。ついでに最近、エジプトのヒエログリフが面白いなあ、と思っていたのでそれをアプリのテーマにした。 Egyptian Hieroglyphs PhotoDaisuke Tonosaki写真/ビデオ無料 Apple の …
Google MLKit の ObjectDetection での静止画像の解析を試してみた。 公式のサンプルもあるが、バンドルされている静止画像しか解析できない。 そのため、写真を選んで解析する iOS サンプル を作ってみた。 動かすとこんな感じ。 試してみて分かったこと Fi…
pod のコマンドを実行した時、以下の警告が表示されるようになった。 [!] Your project does not explicitly specify the CocoaPods master specs repo. Since CDN is now used as the default, you may safely remove it from your repos directory via `po…
macOS 11.0(Big Sur)、iOS 14 から Apple Archive Framework が使えるようになった。 Apple Archive Framework Apple Archive Framework では Apple によって開発された LZFSE アルゴリズムの圧縮・展開ができる。 LZFSE 試しにこの Apple Archive Framewo…
macOS Big Sur からはコマンドで Apple Archive (aar や lzfse)の圧縮・展開ができるみたい。 以下、コマンドの例。 単体ファイルの圧縮 % aa archive -i alice29.txt -o alice29.txt.lzfse -a lzfse alice29.txt を圧縮した alice29.txt.lzfse を生成する…
たとえばこんなコードで ScrollView 内に TextField を置いて、さらにスクロール位置によらないで常に画面下部にある View が表示されるような構成を ZStack で表現すると import SwiftUI struct ContentView: View { @State private var text: String = "" …
mac のシステムでデフォルトインストールされているのは Python 2系。(Big Sur 時点) これを Python 3系に変える。 brew インストール % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" pyenv イン…
Xcode 11 を使って iOS 13 向けに作成されたSwiftUI のアプリだと AppDelegate と SceneDelegate のライフサイクルでアプリが作成されている。 Xcode 12 以降だと、プロジェクト作成時に SwiftUI のアプリのライフサイクルが選べるようになっている。 選べる…
OSS でよくみるMIT, Apache License 2.0 の意味がよくわからなかったので調べたことをメモ。 日本語でオープンソースライセンスについて書かれた資料は、 IPA(情報処理推進機構)が提供している物が分かりやすい。 OSSライセンス関連情報:IPA 独立行政法人…
Firebase iOS SDK を使っている SwiftUI のプロジェクトで Preview が表示されなくなった。(Xcode 12.0.1) とりあえず configure() をコメントアウトすれば、Preview は表示される。 // FirebaseApp.configure() 調べたら、この問題について issue が上が…
iOS で Nominatim API の動作モックを作って試してみた。 動作イメージはこんな感じ。 Nominatim は OSM(Open Street Map)のデータからジオコーディングした結果を取得できる API で、たとえば地名から住所(緯度経度)検索ができる。また、緯度経度から地…
CocoaPods で導入したライブラリのターゲットが iOS 8.0 になっている警告 The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99. Xcode 12 からは …
fastlane snapshot を試してみたのでメモ。 資料 https://docs.fastlane.tools/getting-started/ios/setup/ https://docs.fastlane.tools/actions/snapshot/ fastlane snapshot 導入のメリット 導入のコストはそんなに大きくなく、得られるメリットの方が大…
https://github.com/daisuke-t-jp/UserDefaultsAndKeychainSample/ サンプルを作った。以下メモ。 Swift の Codable を使えば、プロパティそれぞれをエンコード、デコードのコードを書く必要なく楽だ。 Keychain の場合は KeychainAccess が便利 プロパティ…