開発
開発には MacBook Proを使っているが、Flutter でのデバッグ実行で最速なのは「macOS (desktop)」だと思う。そのため画面遷移のテストなどは macOSアプリで動作確認している。 現在、Twitter APIを利用するアプリを開発しているが、煩雑なログイン処理のため…
Kotlin Multiplatform Mobile (以下KMM)を使ってアプリを開発したいと考えている。 将来的には Jetpack Compose を使って UI を実装すれば、Flutter のように共通のコードで iOS側でも実行できるようになるようだが現時点では難しそうだ。Android Studio 上…
iOS 15 / iOS 16 の場合、SwiftUI の List で セクションヘッダーに top padding (top margin?) が入ってしまう問題がある。 ヘッダー上部にマージンが入る現象自体は iOS 15 の時にも発生していたが UITableView.appearance().sectionHeaderTopPadding = 0 …
NovelAI では同一パラメータ(プロンプト・シードなど)でも同一の画像を生成できないのではないかと思い検証をおこなった。 結論としては「ピクセルベースで同一画像の生成はできない」であった。 2022年10月17日、NovelAI はユーザー数の増加に処理を捌きき…
アプリの起動時に紫色の警告が表示されるようになった。 調査したところ、Xcode 14.0 と iOS 16 シミュレータの使用時に AdMob SDKの初期化をおこなうと、このセキュリティワーニングが表示されるようだ。 AdMob SDKの初期化をおこなうとセキュリティワーニ…
ユーザーがタグ色を選択できるプロダクトの場合、ユーザーが決めた色の上にテキストを配置しなければいけない。たとえば、下図の GitHub のタグのような場合である。 背景色に応じて、視認しやすいテキストカラーが利用されていることがわかる。 enhancement…
ユーザーがタグ色を選択できるプロダクトの場合、ユーザーが決めた色の上にテキストを配置しなければいけない。たとえば、下図の GitHub のタグのような場合である。 背景色に応じて、視認しやすいテキストカラーが利用されていることがわかる。 enhancement…
注意:go_router は現在更新頻度が高くバージョンアップも頻繁におこなわれています。この記事は go_router v3.x時代に書かれたもののため、現行の go_router では動かない可能性があります。ご注意ください。 flutter での画面遷移に躓いたので「flutterで…
iOSアプリにtanersener/ffmpeg-kitを組み込んで、iPhoneで録画した動画をffmpegを使ってh264エンコードするとどの動画にもノイズが入る問題が発生した。macOS上で同じ動画をエンコードした場合にはノイズが乗らない。なぜノイズの有無が発生してしまうのか?…
macOSで Kotlin Multiplatform Mobile(KMM) のスケルトンプロジェクトの iosApp のビルドが通らない問題が発生した。 JVMのバージョンを11にする必要があったが、Android Studio内の設定で「Gradle JDK」を変更しても、システムのJDK(macOS組み込みのJDK)が…
iOS 13から画像から顔認識やバーコード、テキスト認識する Vision.framework が実装された。本記事では VNRecognizeTextRequest を使って画像からテキスト(String)を抽出する方法を紹介する。このクラスでは Convert Image to String をおこなう。 よく似た…
昨日、App StoreにてXcode 13.3がリリースされた。早速アップデートしたところ、Bitriseにて特定のアプリで下記のようなエラーが発生した。コンパイル自体は問題なくその後のアーカイブの段階で失敗している。 error: exportArchive: ipatool failed with an…
動画のアップロード機能を実装していると、iOS標準の写真.appでクリッピングやトリミングしている編集済みの動画を選択した場合に、編集しているにもかかわらず編集前のオリジナル動画がアップロードされてしまう現象に気が付いた。 動画を選択するのに UIIm…
プロフィール画像などの静止画の撮影にUIImagePickerControllerを使うことはよくあり、UIImagePickerControllerを使って動画の録画ができることも知っていた。iOSアプリ開発に携わって11年ちょっと経つが、いままでUIImagePickerControllerを使って動画録画…
久しぶりにpythonをいじることになったため、macOSにHomebrewを使ってpythonをインストールする。 環境情報 MacBook Pro(16インチ、2021) Apple M1 Pro macOS Monterey v12.1 Homebrew 3.3.9 macOSでアプリ開発をしている場合、おそらくすでにHomebrewがイ…
注意:このプロジェクトではCoreDataの定義ファイルを TweetAlbum.xcdatamodeld としている。もし存在するかわからないが、本記事を読んで同じ現象でハマった方がいれば、TweetAlbumの部分は各々で読み替えていただきたい。 Appの外にあるCoreDataの.xcdatam…
macOSにJenkinsを入れるのはかなり大変で職人芸を駆使して対応していた記憶がある。2021年ではhomebrewを使ってインストールができた。 macOSの初期化+インストールディスクの作り方。一度稼働させたら基本的にアップデートさせないので今回はMontereyを使う…
CarthageのキャッシュをS3で共有できる「Rome」がxcframeworksに対応して帰ってきた!!この記事はiOS Advent Calendar 2021の12日目の記事です。 Romeとは? はじめに Carthage/Build ディレクトリを zip でまとめて Bitrise でダウンロードしていたが…… Ro…
備忘録として書き残しておく。気が向いたら書き直すかもしれない。 SwiftUIのListで下図のような画面を実装している。 縦スクロールと横スクロールの混ざったリストは珍しくないが、この画面の厄介なところは横スクロールでも別途APIを叩いてデータを取得す…
R.swiftはプロジェクトに追加しているリソースをハードコーディングせず管理できるライブラリだ。2021/11/19、R.swiftがv6.0にアップデートされた。 プロジェクトをビルドすると以下のワーニングが出るようになったので対応した。 warning: [R.swift] For up…
Carthageで「OneSignal-iOS-SDK v3.9.0」をインストールすると、arm64シミュレータ向けのビルド時にリンクエラーが発生してしまう。iOSシミュレータでデバッグ実行できなくなってしまった。 この問題は2021/11/17にv3.9.1がリリースされたことで解決した。リ…
iOS 14になってからTextFieldにフォーカスを当てると適切なポジションに自動でスクロールするようになった。iOS 13ではKeyboardObservingなどのライブラリを利用する必要があったので、標準機能として実装されたのはとても嬉しい。 その一方で、SwiftUIのLis…
先週M1 Macbook Pro*1が届いたので、試行錯誤して既存プロジェクトでRosettaを使わずにiOSシミュレータで起動させることができた。その後、1週間が経過したがiOSアプリ開発には特に問題なく使えることがわかった。 今週はM1 Macbook ProをAndroidアプリ開発…
M1チップ(Apple Silicon)搭載のMacBook Pro (16-inch, 2021)に移行した。社内の開発環境の足並みを合わせるため、すべてのアプリで Rosettaを使わずに実機およびiOSシミュレータでデバッグ実行できるようにしたかった。 使用しているライブラリやソースコー…
Swiftで配列を操作するのに ankurp/Dollar を使っている。 利用しているライブラリをxcframeworkに変更する一連の対応のなかで、DollarをCarthage経由でインストールするように変更したところ、出力したipaファイルをApp Store Connectへアップロードする段…
アプリからAPIを正しく実行できているのかどうかを検証するため「Charles(チャールズ)」を導入しました。 www.charlesproxy.com Charlesはデスクトップで動くプロキシツールで、リクエストを書き換えてサーバーに送ったり、ステータスコードが400で返ってき…
「アプリをリリースしているんだったらASO対策をした方が良い」と言われたので、今年の1月にASO対策をしてみた。ASOとは「Application Store Optimization」の頭文字をとった略称でアプリストア最適化のこと。いわゆるアプリストア版のSEOだ。 アプリストア…
2,3年くらい前にバックグラウンド・サービスで実装されていた位置情報取得処理をフォアグラウンド・サービスに移行(移植)したことがあった。 さくさん自身、位置情報取得の処理は1年に数回書いているような気がするが、いずれもアプリがフォアグラウンドにい…
Four CropperのAndroid版をゼロからスクラッチで作り直しました。一機能しかないアプリなので、フットワーク軽く作り直せるのが助かります。 過去にGoogle Playで公開しているアプリのGMS/Amazon/HMS対応を迫られたことがあって、たま〜に思い出しては調査し…
macOS Big Sur (11.3)にアップデートするとAndroid Studioのエミュレータが起動しなくなった。Android StudioのRunタブには以下のようなメッセージが表示されていた。 04/30 08:46:35: Launching 'app' on No Devices. Error while waiting for device: The …