酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

開発

Androidアプリでバックグラウンド状態で位置情報が取得できるのか調査した

2,3年くらい前にバックグラウンド・サービスで実装されていた位置情報取得処理をフォアグラウンド・サービスに移行(移植)したことがあった。 さくさん自身、位置情報取得の処理は1年に数回書いているような気がするが、いずれもアプリがフォアグラウンドにい…

AmazonアプリストアでAndroidアプリを公開するために調査した

Four CropperのAndroid版をゼロからスクラッチで作り直しました。一機能しかないアプリなので、フットワーク軽く作り直せるのが助かります。 過去にGoogle Playで公開しているアプリのGMS/Amazon/HMS対応を迫られたことがあって、たま〜に思い出しては調査し…

macOS Big Sur (11.3)にアップデートするとAndroid Studioのエミュレータが起動しなくなった

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 …

Androidアプリを実行しているデバイスがAmazonデバイスかどうか判定する

実行しているデバイスがAmazonデバイスであるかどうか判定します。 Amazonデバイスかどうか判定する Amazonデバイスであるかどうかはデバイス名を確認する、または amazon.hardware.fire_tv 機能を持っているかどうかで判断することができます。 object Devi…

AndroidアプリでRSA暗号の公開鍵と秘密鍵を作成する

Androidアプリ内でRSA暗号の公開鍵と秘密鍵を作成して、公開鍵を使って生テキストを暗号化、秘密鍵を使って暗号テキストを復号化する方法を紹介する。 RSA暗号の公開鍵と秘密鍵を作成する RSAで鍵ペアを作成する。 package jp.ch3cooh.common.utility import…

ASO、何をやれば良いかわからん (2021年1月版)

つい先日App Storeに掲載しているスクリーンショットを更新したばかりですが「ASOをきちんとした方が良い」と言われた。ストアのスクショを更新しただけではASOをしたことにならないらしい。 ASOとは「Application Store Optimization」の頭文字をとった略称…

AdMobの広告メディエーションを使って複数のアドネットワークを利用する

アプリ広告といえば AdMob ですね。Four Cropperでは画面のフッターに AdMob のバナー広告を表示させるシンプルな実装となっています。 Four CropperKENJI WADAユーティリティ無料 「Four Cropper」は大きな写真をTwitterに掲載するのに適切なアスペクト比に…

CropViewController が v2.6.0 になって Deployment Target が iOS 12.0に設定されているようになった

iOSアプリで画像をクリッピングすると言えば、利用するライブラリはほぼ TOCropViewController 一択です。 github.com TOCropViewControllerには Objective-C向けのTOCropViewController と Swift向けの CropViewController との両方のライブラリが混在して…

画像を四分割するアプリ「Four Cropper」のApp Store上に表示されるスクリーンショットを更新しました

少し前に大きな写真を四分割してTwitterに投げる遊びが一時期流行っていました。 自分でも簡単に写真を適当なアスペクト比で分割して投稿できるアプリが「Four Cropper」です。なぜかフランスとイタリアでウケているのに驚きます。 FourCropper 写真を選ぶだ…

W-8BENの書き方

W-8BENの書き方は、三菱UFJ銀行の「カルフォルニアアカウント・プログラム 申込書 記入の手引き」がもっともわかりやすかった。 https://www.bk.mufg.jp/tsukau/kaigai/kouza/cali/pdf/caliaca_kinyuure.pdf

Bitrise のXcode 12.3.xスタックでビルドしたバイナリが App Store へアップロードできない

12月15日に Xcode 12.3 Release版がリリースされました。当日中にXcodeをアップデートして「iOSシミュレータの画面が黄色くなる不具合」など踏んでStack Overflowに初めての書き込みをしたことなど今となっては良い思い出です。 Bitriseとは 今年に入ってか…

Xcode 12.3のiOS 14.3シミュレータを起動すると画面が黄色くなってしまう問題を解決した

今朝起きたらXcode 12.3が公開されていたので、Xcode 12.3をダウンロードして開発中のアプリが動くかどうか検証しようとしたところ、UIAlertControllerが真っ黄色になっていたので腰をぬかしました。すんげえエンバグしてもうたと慌てて原因を調査しました。…

iOSアプリのdSYMファイルをBitriseからFirebase Crashlyticsへアップロードする #bitrise #bitrisearticle

この記事は、Bitrise Advent Calendar 2020の1日目の記事です。夕食を食べて帰ってきてアドベントカレンダーを覗いたところ、20時時点で誰もエントリーしていなかったので書くことにしました。 Bitriseとは 今年に入ってからこのブログでも、Bitriseを使って…

なにもしてないのに Googleスプレッドシート のCSVファイルがダウンロードできなくなった

Google Spreadsheetに記入した内容をデータソースにして、curlでダウンロードしてデータを加工する処理をたくさん作っています。11月18日(水)の午前中にGoogle SpreadsheetからCSVファイルのダウンロードができない現象が発生していることに気が付きました。…

Carthage経由での FirebaseAdMobBinary v7.1.0 のインストールに失敗する

昨日、Firebase iOS SDKが v7.1.0 にアップデートされた。Bitriseでのビルド時間を最短にするためにFirebase iOS SDKもCarthage経由でインストールしている。 いくつかのプロジェクトでライブラリのアップデートを実行していったところ、とあるプロジェクト…

CarthageでNYTPhotoViewerをアップデートすると10月23日以降ビルドエラーが発生する

「BitriseでXcode12+Carthageを使ってiOSアプリをビルドしよう! - 酢ろぐ!」のエントリを書いてから、僕は開発中のプロジェクトをXcode 12+Carthage環境に戻しています。 Firebase関係をCarthage経由でインストールできるのでCIでのビルド時間が2〜3分短縮…

CocoaPodsをv1.10にアップデートすると cocoapods-binaryを使っているプロジェクトでビルドエラーが発生する

Xcode 12でCarthageが使えなくなって、CocoaPods + cocoapods-binary の構成に移行した方は多いのではないかと思います。僕もそのうちのひとりです。 CocoaPodsはCIサービスでリリースビルド(ipaファイルをエクスポート)する際には毎回フルビルドされます。…

BitriseでXcode12+Carthageを使ってiOSアプリをビルドしよう!

Xcode 12になって悲しいことにCarthageが使えなくなりました。説明するまでもありませんが、CarthageはiOSアプリ開発の主要なパッケージマネージャーのひとつです。 開発を止められないお仕事アプリは即日ですべてCocoaPodsへ移行しました。CocoaPodsは導入…

Xcode12でCocoaPods以外の方法でFirebaseをインストールするとAppStoreへのアップロード時に失敗する

Firebase for iOS SDKの正式な導入方法としては、CocoaPods経由でインストールすることになっています。 しかし、CarthageまたはSwiftPMでの導入方法はまだベータ版扱いですが導入手段が提供されています。Xcode 12 betaあたりまでは正常に動いていたような…

Tweet Clips

本ページは、以下のページへ移行しました。 products.ch3cooh.net

Tweet Clips (ツイクリ)の使い方

本ページでは「Tweet Clips」(以下ツイクリと記す)の使い方を説明します。ツイクリは、あなたのお気に入りのツイートを保存するためのアプリです。 Tweet Clips(ツイクリ)KENJI WADAユーティリティ無料apps.apple.com このページではツイクリの使い方と既…

How to use Tweet Clips

This page explains how to use "Tweet Clips". "Tweet Clips" is an application that allows you to save your favorite tweets. Tweet ClipsKENJI WADAUtilitiesFreeapps.apple.com This page describes how to use "Tweet Clips" and its known bugs. Sa…

iOS 14でナビバーの戻るボタンを長押しすると画面スタックのリストが表示されるようになったので無効にしたい

iOS 14でナビゲーションバーの戻るボタンを長押しすると、画面スタックのリストが表示されるようになりました。この挙動を無効化したいと考えています。 実行環境 Xcode 12.0.1 iOS 14.0.1 問題 iOS 14でナビゲーションバーの戻るボタンを長押しすると、画面…

最新のFirebase SDKをインストールすると「Use of unresolved identifier 'FirebaseApp'」エラーが発生する

最新のFirebase SDKをインストールすると「Use of unresolved identifier 'FirebaseApp'」エラーが発生するようになった。 Use of unresolved identifier 'FirebaseApp' 解決編 import Firebase から import FirebaseCore に変更する // import Firebase imp…

Andriodで 動画ファイルを保存するとギャラリーには表示されるがサムネイルが表示されない/再生できない

FFmpeg for Andriodで書き出した動画ファイルを保存したあと、ギャラリーアプリで確認すると動画のサムネイルが表示されていない不具合があり、再生もできない。静止画を保存した場合は、特に問題なくサムネイルが表示されていた。 下記のデバイスにて検証し…

FFmpeg for Androidを使っている場合、target sdkを29にすると処理に失敗するようになる

Projectレベルの build.gradle のtarget sdkを 29 にすると、Android Q(10)上でFFmpeg for Androidでの処理に失敗することがわかった。 Target SDKが29だとPermission deniedが発生する 生成したコンテンツをギャラリーに保存するためにコードを書いていてAn…

Androidで テキストを縦方向の中央揃えで描画できない

縦方向の中央揃えでテキストを描画できない 期待する動作。 現実。尻尾(descent)の分だけ下方向にズレてします。 問題点 paint.getTextBoundsで、文字の高さは取得できる… 取得した高さを使って、描画領域を求めることはできる。 しかし、drawTextで描画する…

Bitriseの記事を書いたらBitriseグッズが送られてきた!

最近Bitriseの記事をよく書きます。……というのも弊社でも遅まきながらJenkinsを捨ててBitriseを利用することになったからです。 無料枠だと10分制限*1、有料枠であれば90分制限と1ビルドあたりの時間制限があります。iOSアプリはライブラリを利用していると…

大きな写真を分割してTwitterでシェアするアプリ「Four Cropper」を2時間で作った

嫁に出かけるので近くの喫茶店で待っておいてと言われ、喫茶店で待つ間あまりにも暇だったので即興で思いついたアプリを作りました。 写真を選び、分割して Twitterへシェアします。2分割・3分割・4分割と写真とマッチした分割数にしてください。 FourCroppe…

iOSで UIAlertControllerを表示すると「width == - 16」の制約エラーが発生する

iOS 13.5 になっても一向に修正される気配がないので仕方なく対応することにした。この現象はiOS 12.2〜13.5で発生することが確認されているらしい。 UIAlertControllerを表示すると制約エラーが発生する ごく普通に UIAlertController を使ってアクションシ…