USBTypeC変換ハブを買う。そして、買いなおす。

2022年10月13日

開発環境
OS:macOS Monterey
SDK:Xcode14.1

概要

Mac Bookでの初めてのアプリ開発。

まずは最初にすること、それは、TypeC変換です。

USBTypeC変換ハブは必須

iPhoneアプリの開発依頼を受け、Mac Bookが家に届きました。

初めてのMac Book。

まず戸惑ったのが、

USBポートがTypeCしかない。

マウスにしろ、デバッグ用ケーブルにしろ、手持ちのデバイスは全てUSB TypeA。

Mac Bookにはそのまま使えないのか。。。

早速、近くの電気屋に行って、USB変換ハブを買いました。

まず手に取ったのがこちら。

Digio2 STIX(UH-C2482)シリーズ

購入価格(税込み)1233円

デザインはシンプルでスタイリッシュ、そのうえ、安い!

いい買い物したね、と思いながら、早速、使ったみたところ。。。

カッチカチ。

USBの挿し口がかなりきつく、差し込みにしろ、抜くにしろ、とてつもなく固い。

1度差してそのままずっと使うなら良いのですが、そうはいかない。

買いなおしです。。。

そして、次に買ったのがこちら。

ELECOM U3HC-A429Bシリーズ

購入価格(税込み)2545円

ケーブルの長さが微妙ですが、さすがELECOM。

USBの抜き差しは問題なし。

経験上、耐久性はあれですが、使いやすさは間違いないですね。

これでやっとアプリ開発が始められます。

今月のみてみて(2022年9月)

Firebase連携アプリ、みてみてエストーク伊勢125社巡り

このうち、みてみてにフォーカスを当て、Firebaseのアクセス動向やアプリの改善を考察する開発記事です。

Realtime Database+Storage構成の投稿アプリ

アプリのユーザー数の変動とともにFirebaseのアクセス動向を確認します。

2022年9月1日~9月30日のユーザー数の変動

(ユーザー数の変動)

1ヶ月の新規獲得ユーザー数

ほぼ完全に動きが止まりました。。。

唯一の救いが獲得と減少の山がシンクロしていないという所ぐらい、か。

(インストールの上位国)

残念ながらトルコは伸びず。

フィリピンには足を向けて寝れないが、他の国にも波及して欲しい。

9月30日直近のFirebaseの変動

(Firebaseの変動)

直近のfirebaseの動き
1ヶ月のfirebase使用量

投稿情報を定期的に削除する仕様にしているので使用量が伸びません。
(良いことではない(´;ω;`)

2022年9月1日~9月30日のAdMob

今月は、AdMob広告収入:33円、 Firebase使用料:0円となりました。

低調です。

みてみての投稿を見てみて

(今月の投稿ピックアップ)

I 💛 Monster Hunter

今後の改善案

・UIブラッシュアップ

・フレンド共有機能追加

上記を進めつつ、ベースのシステムを固める予定。

再来月あたりでコンテンツ投入して動きを見れるようにした。

,

ファミリーポリシーを遵守すべきなのか、決断する

概要

アプリのターゲットユーザーを13歳未満とする場合に考慮すべきファミリーポリシー。
以前にもファミリーポリシーを遵守するために広告を制限するなどあれこれと試行錯誤してきましたが、ついに決断の時がきました。
ファミリーポリシーをこのまま遵守し続けるべきなのか?

以前に行った対策は以下。

リリース審査でリジェクトされる

ヒットアンドブローを題材にしたWi-Fi Directゲーム、サムライロード

アプリをAndroid13に対応させようと軽微な改修を行い、リリースしたところ、ファミリーポリシー違反によるリジェクトとなりました。

リジェクト理由として添付されていた画像は以下。

リジェクト理由としては「広告コンテンツがファミリーポリシーに反している」とのこと。

そして、そのポリシー違反の広告が「Pickaroo」というアプリの広告のようです。

では、「Pickroo」とはどんなアプリなのか?

ネットで調べてみると、日常用品のデリバリーサービスアプリでした。

ちなみにファミリーポリシーの規約に関するサイトに違反例として掲げられているのがこちら。

違反例を参考に判断すると、ポリシー違反ではないような気もします。。。

異議申し立てをすることでリジェクトを回避できるかもしれませんが、そもそもファミリーポリシーを遵守すべきなのだろうか?

13歳未満をターゲットにする意図

13歳未満をターゲットにしなければ、ファミリーポリシーの遵守は必要ありません。

では、なぜ13歳未満をターゲットに含めたのか?

それは、13歳未満を対象にすることでユーザー層を拡大したい、親子で楽しんでもらいたい、という思いがあったからです。

ですが、ここで改めて実際に13歳未満のユーザー数を調べてみます。

「android 世代別」で検索した結果、ヒットした記事を参考にすると、

Androidユーザー全体に対する10代男女の割合が、5.4%。

13歳未満に限るともっと少ないはずです(おそらく1%未満)。

つまり、ユーザー層の拡大に対する期待値は予想以上に低いという事実。

そして、その期待値の割に対し、広告の制約が大きいということ。

ターゲットユーザーを13歳以上とする

上記の理由から、サムライロードについては、13歳未満のユーザーに対するアプリの普及を断念することにしました。

それにより、以下の変更を実施。

・Google Play Consoleでターゲットユーザーを13歳以上に変更

・AdMobのアプリ設定から広告制限を撤廃

・アプリ内の広告リクエストからレーティング制御を削除

・アプリのタイトル変更(サムライロードからサムライキルに。敢えてキルと言う表現を避けていた)

変更後、リリースした結果、無事、リリース審査に合格しました。

総括

13歳未満のユーザーターゲットとAdMobの相性はやはり良くないですね。

広告収入を抜きにした目的(13歳未満のユーザーと親和性の高い商品展開をしていてサービスとしてアプリを提供するなど)がないと厳しいかなと感じました。

残念ですが、サムライロードは13歳未満のユーザーターゲットから撤退です。

今月のみてみて(2022年8月)

Firebase連携アプリ、みてみてエストーク伊勢125社巡り

このうち、みてみてにフォーカスを当て、Firebaseのアクセス動向やアプリの改善を考察する開発記事です。

Realtime Database+Storage構成の投稿アプリ

アプリのユーザー数の変動とともにFirebaseのアクセス動向を確認します。

2022年8月1日~8月31日のユーザー数の変動

(ユーザー数の変動)

1ヶ月の新規獲得ユーザー数

心配した通りインストール数が停滞してきました。。。

8/8にマップ画面に新機IFを追加したアプリのリリースを行ったのですが、アンインストールに歯止めをかけることはできていないようです。

というか、インストールの伸びが悪いので効果が判断しづらいところ。

(インストールの上位国)

まずは多言語化(英語、インドネシア語、ロシア語、日本語)について。

残念ながらインドネシアが伸びてこず、多言語化の効果は今のところないようです。

ロシアはGoogle Play Storeが止められているはずなので効果不明。(早く平和になってください。

今月の新たな変化としてはトルコで少し動きがありました。

過去にリリースしたチャットアプリ、エストークもリリース初期の頃、トルコで動きがあったので盛り上がりに期待したいところ。

8月31日直近のFirebaseの変動

(Firebaseの変動)

直近のfirebaseの動き
1ヶ月のfirebase使用量

投稿情報を整理した結果、使用量が減りました。

まだインパクトのある数値は出なさそうです。

2022年8月1日~8月31日のAdMob

今月は、AdMob広告収入:120円、 Firebase使用料:0円となりました。

これだけ低調だと何も言うことないです。

みてみての投稿を見てみて

(今月の投稿ピックアップ)

新機能追加の告知

投稿がないので。

今後の改善案

8月中に追加予定だった新機能が1つ未実装となっており、9月上旬にリリース予定。

ここでツールとして完成形になるので9月はコンテンツを考えたい。

あと余裕があれば、ベースアーキテクチャのリファクタリングもやっておきたいがいかに。

,

Android13対応ついでに最小APIレベルを確認する

2022年8月22日

開発環境
OS:Windows 10
SDK:Android Studio Chipmunk | 2021.2.1

概要

いよいよAndroid13がリリースされ、APIレベルも33に。
アプリのターゲットAPIレベルを33に上げていくなかで最小APIレベルをどうするか?
デバイスのインストール状況を確認して決めようかと思います。

APIレベルを33にする

Android13がリリースされたのに伴い、今後、アプリの改修を行う際にはAPIレベル33に適用させていこうと思っています。

android {
    compileSdkVersion 33
    defaultConfig {
        
        minSdkVersion 24
        targetSdkVersion 33
  
    }

}

そんななか、ターゲットAPIレベルを上げるからには合わせてサポート対象の最小APIレベルも上げておきたいところです。

そこでGoogle Play Consoleを使い、実際にインストールされているAndroidバージョンの割合を確認して最小APIレベルの底上げの判断をします。

APIレベルを確認する

アプリのバージョン別普及率を確認します。

まずはGoogle Play Consoleで対象アプリのダッシュボードを表示します。

メニューから「リーチとデバイス」の「概要」を選択します。

Google Play Console

ユーザーと問題の分布/Androidバージョンが表示されるので「探す」をクリック。

Google Play Console

インストール上位バージョンが表示されます。

インストールされているバージョンを全て確認するために「+Androidバージョン」をクリック。

Google Play Console

これで全てのインストールバージョンが表示されます。

こうして見てみるとアプリ「伊勢125社巡り」はいまだにAndroid7.0が1台いらっしゃるようです。

たぶんにアプリをインストールしたままでスマホを廃棄されたのでは、と思うのですが、念のため、アプリ内でサポート切れ告知をしたあと、最小レベルを28まで上げようかと思います。

(Android 8.0の1台は私物のデバッグ機、のはず。

APIレベルについてはこちらでも確認できます。

Android API Level

AndroidバージョンとAPIレベル一覧です。

2025年4月14日現在

NoバージョンAPIレベルバージョンコード備考
1Android 1636BAKLAVA
2Android 1535VANILLA_ICE_CREAM
3Android 1434UPSIDE_DOWN_CAKE
4Android 1333TIRAMISU
5Android 1232S_V2
631S
7Android 1130R
8Android 1029Q
9Android 928P
10Android 8.127O_MR1
11Android 8.026O
12Android 7.1.1
Android 7.1
25N_MR1
13Android 7.024N
14Android 6.023M
15Android 5.122LOLLIPOP_MR1
16Android 5.021LOLLIPOP
17Android 4.4W20KITKAT_WATCHウェアラブル向け
18Android 4.419KITKAT
19Android 4.318JELLY_BEAN_MR2
20Android 4.2.2
Android 4.2
17JELLY_BEAN_MR1
21Android 4.1.1
Android 4.1
16JELLY_BEAN
22Android 4.0.4
Android 4.0.3
15ICE_CREAM_SANDWITCH_MR1
23Android 4.0.2
Android 4.0.1
Android 4.0
14ICE_CREAM_SANDWITCH
24Android 3.213HONEYCOMB_MR2
25Android 3.1.x12HONEYCOMB_MR1
26Android 3.0.x11HONEYCOMB
27Android 2.3.4
Android 2.3.3
10GINGERBREAD_MR1
28Android 2.3.2
Android 2.3.1
Android 2.3
9GINGERBREAD
29Android 2.2.x8FROYO
30Android 2.1.x7ECLAIR_MR1
31Android 2.0.16ECLAIR_0_1
32Android 2.05ECLAIR
33Android 1.64DONUT
34Android 1.53CUPCAKE
35Android 1.12BASE_1_1
36Android 1.01BASE
Android api level

伊勢神宮125社

伊勢神宮125社を一覧にまとめてみました。

No神社宮社備考
1皇大神宮正宮内宮
2豊受大神宮正宮外宮
3風日祈宮別宮
4荒祭宮別宮
5月読宮別宮
6月読荒御魂宮別宮
7伊佐奈岐宮別宮
8伊佐奈弥宮別宮
9倭姫宮別宮
10瀧原宮別宮
11滝原並宮別宮
12伊雑宮別宮
13多賀宮別宮
14土宮別宮
15風宮別宮
16月夜見宮別宮
17津長神社摂社
18大水神社摂社
19宇治山田神社摂社
20大土御祖神社摂社
21国津御祖神社摂社
22朝熊神社摂社
23朝熊御前神社摂社
24江神社摂社
25神前神社摂社
26粟皇子神社摂社
27堅田神社摂社
28湯田神社摂社
29狭田国生神社摂社
30奈良波良神社摂社
31坂手国生神社摂社
32御船神社摂社
33朽羅神社摂社
34鴨神社摂社
35田乃家神社摂社
36田乃家御前神社摂社
37蚊野神社摂社
38蚊野御前神社摂社
39棒原神社摂社
40川原神社摂社
41園相神社摂社
42久具都比賣神社摂社
43多岐原神社摂社
44度会国御神社摂社
45度会大国玉比賣神社摂社
46山末神社摂社
47高河原神社摂社
48田上大水神社摂社
49田上大水御前神社摂社
50河原淵神社摂社
51河原神社摂社
52御食神社摂社
53宇須乃野神社摂社
54清野井庭神社摂社
55草奈伎神社摂社
56大間国生神社摂社
57志等美神社摂社
58大河内神社摂社
59小俣神社摂社
60新川神社末社
61石井神社末社
62川相神社末社
63熊淵神社末社
64葭原神社末社
65那自賣神社末社
66宇治乃奴鬼神社末社
67葦立弖神社末社
68鏡宮神社末社
69加努弥神社末社
70許母利神社末社
71荒前神社末社
72小社神社末社
73鴨下神社末社
74牟弥乃神社末社
75津布良神社末社
76大津神社末社
77伊我理神社末社
78井中神社末社
79毛理神社末社
80志宝屋神社末社
81縣神社末社
82打懸神社末社
83赤崎神社末社
84瀧祭神所管社
85興玉神所管社
86宮比神所管社
87屋乃波比伎神所管社
88御稲御倉神所管社
89由貴御倉神所管社
90御酒殿神所管社
91四至神所管社
92大山祗神社所管社
93子安神社所管社
94饗土橋姫神社所管社
95御塩殿神社所管社
96神麻続機殿神社所管社
97神麻続機殿神社末社八所所管社8社
98神服織機殿神社所管社
99神服織機殿神社末社八所所管社8社
100上御井神社所管社
101下御井神社所管社
102四至神所管社
103御酒殿所管社
104若宮神社所管社
105長由介神社所管社
106川島神社所管社
107佐美長神社所管社
108佐美長御前神社四社所管社4社
神宮125社

神社詳細、場所をチェックできるAndroidアプリ、伊勢125社巡り

アプリの概要、使用方法は以下をご覧ください。

伊勢神宮125社を実際に歩いて巡る旅。

「歩いて巡る伊勢神宮125社」はこちらからご覧ください。

プログラマー回顧録(23)

~ エンデベッドシステム開発経験を回顧する ~

キミはなぜ間違いを犯したのか。

事象報告の核となる原因、対策を開発工程に基づき、振り返ってみた。

報告書はそれらを踏まえ、報告書の定型に落とし込むとして、次に待ち受けるのは6whyだ。

6why、なぜなぜ分析。

事象を源流とし、なぜそうなったかをブレークダウンしていくことで改善策を導く手段である。

よくある笑い話でどんな事象でもなぜなぜの行きつく先は「担当者の疲労」、対策は「よく寝る」になる。

なんて話もあるが、客先に提出する資料であるのでネタに走るわけにもいかない。

これが意外とパターンというものがなく、なぜを進めるのが難しかったりもするのだ。

今回の件だと事象「設定の切り替えを行った後、メイン機能が動作しなくなった。」が源流となり、なぜそうなったのか、問答を始める。

1段階進めると「メイン機能が切り替え後の設定を参照したため」となり、

もう1段階進めると「メイン機能が設定を参照することを見落としていた」となる。

この段階から事象の核心へと進み始め、更に深堀りしていくことになる。

また、理由が複数ある場合は枝分かれするため、なぜがなぜを呼ぶ展開となる。

最終的には明確な要因が浮き彫りになり、それに対する改善案を提起できれば完了となるのだが、

こんなことを1日中やっていると思考崩壊となるわけで、

なぜこんなことになったのかと自問せずにはいられないのもあるあるではないだろうか。

これは個人的体験談を元にした回顧録です。企業名、人名などは架空の名称です。
毎週日曜日更新。
随時、加筆、修正を行います。

投稿日2022.07.31更新日0000.00.00

プログラマー回顧録