開発
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日目の記事です。 ライブラリを事前にビルドしておいてiOSアプリのビルド時間を短縮するプロダクトに「Carthage」がある。Carth…
備忘録として書き残しておく。気が向いたら書き直すかもしれない。 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 …
実行しているデバイスがAmazonデバイスであるかどうか判定します。 Amazonデバイスかどうか判定する Amazonデバイスであるかどうかはデバイス名を確認する、または amazon.hardware.fire_tv 機能を持っているかどうかで判断することができます。 object Devi…
Androidアプリ内でRSA暗号の公開鍵と秘密鍵を作成して、公開鍵を使って生テキストを暗号化、秘密鍵を使って暗号テキストを復号化する方法を紹介する。 RSA暗号の公開鍵と秘密鍵を作成する RSAで鍵ペアを作成する。 package jp.ch3cooh.common.utility import…
つい先日App Storeに掲載しているスクリーンショットを更新したばかりですが「ASOをきちんとした方が良い」と言われた。ストアのスクショを更新しただけではASOをしたことにならないらしい。 ASOとは「Application Store Optimization」の頭文字をとった略称…
アプリ広告といえば AdMob ですね。Four Cropperでは画面のフッターに AdMob のバナー広告を表示させるシンプルな実装となっています。 Four CropperKENJI WADAユーティリティ無料 「Four Cropper」は大きな写真をTwitterに掲載するのに適切なアスペクト比に…
iOSアプリで画像をクリッピングすると言えば、利用するライブラリはほぼ TOCropViewController 一択です。 github.com TOCropViewControllerには Objective-C向けのTOCropViewController と Swift向けの CropViewController との両方のライブラリが混在して…
少し前に大きな写真を四分割してTwitterに投げる遊びが一時期流行っていました。 自分でも簡単に写真を適当なアスペクト比で分割して投稿できるアプリが「Four Cropper」です。なぜかフランスとイタリアでウケているのに驚きます。 FourCropper 写真を選ぶだ…
W-8BENの書き方は、三菱UFJ銀行の「カルフォルニアアカウント・プログラム 申込書 記入の手引き」がもっともわかりやすかった。 https://www.bk.mufg.jp/tsukau/kaigai/kouza/cali/pdf/caliaca_kinyuure.pdf
12月15日に Xcode 12.3 Release版がリリースされました。当日中にXcodeをアップデートして「iOSシミュレータの画面が黄色くなる不具合」など踏んでStack Overflowに初めての書き込みをしたことなど今となっては良い思い出です。 Bitriseとは 今年に入ってか…