ラベル VisualStudio の投稿を表示しています。 すべての投稿を表示
ラベル VisualStudio の投稿を表示しています。 すべての投稿を表示

[突破ファイル]アプリ制作のハードル2021

アプリ制作のハードルは、

以前に比べだいぶ下がってきている今日この頃・・・

ですが、GooglePlayで公開するための手続きは

相変わらずハードルが高いような、クセが強いような。

(Google先生、もう少しお手柔らかにお願いします。)


わかりやすいところで、GoogleChromeブラウザ

ある日突然、

謎のアイコンが現れたり、使っていた機能が消えたり・・・

同じようなことがGooglePlayでもあり、

今回のハードルはここ数年で最も高かったのではないでしょうか。


ハードルの内容は

  1. Android 11 (API レベル 30)で動くようにせよ
  2. 署名スキームをV1からV2にせよ
  3. 新規アプリの公開はApp Bundleで行え


中でも最も厄介だったのがApp Bundle

お知らせ、警告は2019年からでしょうか?

アプリをアップした際に

Android App Bundleを使用するとアプリのサイズを小さくすることができます。

と警告されていました。

その後、警告は以下のように変わりました。

2021 年 8 月より、Google Play での新規アプリの公開は
Android App Bundle で行う必要があります。

Android App Bundleがツールであるかのようにも受け取れます。

もっとシンプルに

今までGooglePlayにアップしていたファイルの拡張子が*.apkでしたが、

*.aabにしてくださいと説明した方がわかりやすいのではないでしょうか。


すべてのアプリ制作デベロッパーが

Google謹製のAndroidStudioを使っているわけではなく、

他にもツールがあり、中には*.aabを出力できないツールがあることを

Google先生は把握している、把握した上でこの変更(*.apk⇒*.aab)

確信犯?そう疑ってしまう一文がAndroid App Bundleの詳細説明ページに

App Bundle をビルドするのは、ほとんどの場合それほど難しくはありません。


アプリのサイズを小さくすることが目的ならば

*.apkでも数MBの場合は*.aabでなくてもOKというルールにしても

問題ないと思うのですが、新規アプリは強制的に*.aabとしたということは

いずれ既存アプリも*.aabにせよとお達しがくるのでしょう。


当方はMicrosoft謹製のVisualStudioを用いて

Cordovaアプリを制作してきたわけですが、

VisualStudio2019以降Cordovaが含まれないため

使用しているのはVisualStudio2017

11月に入って、新規アプリを制作開始

11月末、*.apkをアップしたところ

有効な App Bundle をアップロードしてください

Google先生が何かしらのツールを提供してくださって

*.apkから*.aabに変換できるなど、期待していたのですが、お手上げ状態。


その後はすっかり諦めて開発環境を変えることに。

VSCODE、AndroidStudioをインストール。

OnsenUI、AngularJS・・・

VisualStudio2017で作成したアプリのソースを移植。

アイコンの変更すらちょっとしたハードルでした。

とりあえず*.apkで出力し、実機で検証。

*.aabの出力はコマンドラインから。

  • cordova build android --release -- --keystore=* --storePassword=* --alias=* --password=* --packageType=bundle

果たして、Google先生はこの*.aabを受け付けてくれるのでしょうか・・・

2021/12/05 22:49アップロード

2021/12/07 13:48にGoogle先生よりメール受信(Your update is live)


どのタイミングだったのかわかりませんが、

環境変数が妙な場所に書き換えられ、まったく動かないなんてこともありました。

Google先生なら、クラウド上にアプリ開発環境を提供できると思うのですがどうなんでしょう?

と思うほど、

環境によっては一筋縄では行かない

そこそこ高いハードルだった*.aab(Android App Bundle)でした。

そのハードルを突破して出来上がったのが

こちら↓

ザ・パタパタ10
開発元:HA823
価格:無料(広告を含む)
Get it on Google Play

『AndroidとiPhone』この差って

パソコンは日本でも世界でも『Windows』

スマホの主流 パソコンの主流
日本 iOS(iPhone) Windows
世界 Android Windows

スマホは『iPhone』のシェア率が高い日本、

パソコンは『Mac』ではなく『Windows』


日本でiPhoneが人気な理由。

Androidには無い機能があっても、

それが購入の決め手、決定打になるほどでもない。

無いと困ると言われそうな機能としては

以前Androidの方にありました。おサイフケータイや地図の精度など。

現在はそんな大差は無いと思うのですが。。。


決定的な違いがあるのは、アプリ開発に関すること。

2段階方式の日本地図

3年以上ほったらかしの『ぬか床』

いや、放置していてまったくアップデートしていない『アプリ』

トラック次郎』は先月アップデート。

もうひとつありました。


都道府県を選択するアプリ『日本三大○○

例えば日本三景だったら、宮城、京都、広島を選択。

このアプリは各県を選択しづらいという難点を抱えていました。

地図をデフォルメ表示という手もありますが、

そもそも開発のきっかけはこのプラグイン→(Japan Map)なので。

とりあえず、左右のカーソル移動で選択できるようにして、

追々『2段階方式』に変える予定でした。

その2段階方式とは、地方ごとに拡大表示。もちろんJapan Mapを利用。

jQueryプラグインJapan Mapを利用して2段階選択式の日本地図を描画する

こちらを参考にしながら修正する予定でした。。。


他の作業に追われ、後回しになり、3年以上放置してしまいましたが、

この度、ようやくアップデート。

ちなみに、北海道と沖縄は全体表示からダイレクト選択できるようになっております。


お題回答前は県名の表示はされません。判定後は表示されます。


緑に塗られた県が正解。その県をタップすると詳細を確認できます。




日本三大○○地図パズル
開発元:HA823
価格:無料
日本三大○○地図パズル


MediaWikiAPIにハマる

ある箇所に手を加えた時、
このタイミングで別箇所の不具合を見つける。
焦ります。

副作用なのか、元々なのか。
今回『戦国CAST』のクイズ機能を微調整。
影響が出たとしてもクイズ周り。
それでもアプリをアップロードする前には
全体を一通り見回るように動きを確認。

すぐにGooglePlayにアップロードするつもりでしたが
不具合を発見。クイズ周りではない場所。
副作用?
Wikipediaのページから概要を引用表示している部分で
文字化けどころか一文字も表示されなくなっている。
影響するわけがないと思いつつ、とりあえず元に戻してみる。
以前まで問題なかった部分を下手に弄るより、戻した方が楽だから。
戻しても直らない。
となると、Wikipedia側の問題も考えられる?


都度MediaWikiAPIを介して概要を取得しています。
武将や俳優の名前からwikiページを検索。
2バイト文字なのでURLエンコード。
『明智光秀』の場合だったら
titles=%E6%98%8E%E6%99%BA%E5%85%89%E7%A7%80
ところが、光秀のページにたどり着いていない。
前のバージョンのソースと比較しても
今回無意識に手を加えているなんてことはない。

「おいっ、MediaWiki」

さらにURLエンコードされている!?ダブルエンコード!!
これが原因でした。しかし何故!?いつから!?
試しにエンコードせずに渡しても、目的のページにたどり着かない。。。
wiki様は、普段は結構気を使ってくださるんですけどね。(転送してくれたり)
ダブルエンコードは余計なお世話かな。
でも、pageidならそんなことにはならないでしょうということで
『光秀』のページなら
pageids=17262
この変更だけで終わらそうと思いましたが、
せっかくだから保留にしていたことまで手を入れてしまおうと。

wikiから取得している概要、
いつ取得しても内容はあまり変わらない。
アプリ内で扱う分だけであれば、そんなにサイズは大きくならない。
ということで、概要はすべてアプリに持たせるよう変更。
現在このアプリで扱う武将数は159
一気に取得するのはよろしくないので
ちょっと時間をかけながらじっくり取得。

ちなみに、いつもMediaWikiに関して参考にしているのは
コチラ↓
MediaWiki APIを使ってWikipediaの情報を取得

そして戦国CASTでのこの修正は
兄弟アプリ(類似アプリ)である「幕末CAST」にも反映。
パッと終わる予定が意外とハマって手間取って
バタバタした数日間でした。。。

戦国CAST
開発元:HA823
価格:無料
戦国CAST

幕末CAST
開発元:HA823
価格:無料
幕末CAST

トラック八郎のカスタムパーツ入荷

アップデートのお知らせ。
画面周りをリニューアル。

今まで公開していたトラック八郎はmonacaで作られたアプリ。
新バージョンはVisualStudioで作り直し。
つまりmonacaからの移植です。
とりあえずVisualStudioに移植するだけで
デザインには手を加えない予定でしたが、
街でトラックを見るたび、
テールレンズなどに目が行き、弄りたい気持ちが芽生え、
パーツの追加や各種デザインの変更もしました。

効果音再生アプリに効果音増し増し

当方でずいぶん前から公開している
サウンドエフェクトキーホルダー」という効果音再生アプリ。

コンビニなどでも売っていたアレ。
ボタン電池駆動だからキーホルダーとして持ち歩けたアレ。
小さなボタンが並んで、押すと銃声などが聞けたアレ。

アレをアプリで再現しようと作り始めた当初も
ボタンを並べるのか、リスト表示にするか。
1画面に100個でも200個でもボタンを並べることは可能。
ただ、押しづらくなる。
かといってリスト表示にすると、
スクロールして、あるいは絞込みして再生することになる。
それではあのキーホルダーのようにタイミング良く押せない。
結局、ボタンスタイルにしましたが、
新たに効果音を追加したい時にボタン配置に悩まされる・・・

それに加え、紹介動画を作ってもらえたアプリ。
アプリをアップデートしたら、
動画内の画面との違いが出てきてしまう。

なんやかんやでアップデートが滞ってしまいがちなアプリ。

monacaアプリをVisualStudioで作り直し

monacaの利用規約の変更等々で
VisualStudioでアプリを作るようになりました。

でも以前monacaで作られたアプリ達、
彼らはまだそのまま公開中・・・
特に問題はありませんが、
何かしら修正が必要になった時、
例えばGoogle先生に脆弱性を指摘され
何時いつまでに修正せよと警告された場合、
緊急移植(VisualStudioで作り直し)が必要になります。

Google先生は時折ものすごく厳しいことを仰られます。
それまで1年以上問題なく公開できていたアプリに対しても
1ヶ月以内に修正するように警告を出してきたり、
いきなりGooglePlay上から削除されてしまうこともございます。

モンキー125のカスタム

トラック八郎」をベースにして作成しましたが、
通称キンコン音(※)の機能、
モンキー125風」は外しておりました。
(※一定の速度に達すると鳴る警告音)

実車には無い機能であること、
VisualStudioで余計なパーミッションを外す方法が不明だったこと。
細かいことは先日アップデートした変則チェスの記事で
お分かりいただけますが、外せるようになりましたので、
設定で選択可能なように修正しました。


変則チェス更新(移植、新駒配置、CPU調整などなど)

monacaで作った変則チェスアプリ。
それをVisualStudioで作り直し。

に合わせて、
トップ画面での駒配置選択部分をカルーセルにしつつ、
新しい駒配置を追加したり、
CPU対戦を少し調整。


アドジェネで自社広告配信

2年ぐらいでしょうか、アドジェネ歴。
でも、使ってこなかった自社広告機能。

なんとなくFAQページをのぞくと、
Q. 自社広告は配信できますか?
A.はい。できます。例えば、新しいアプリをリリースした時など、対象の広告枠に自社広告を配信することができます。
出来立てホヤホヤのモンキー125再現アプリ。
これをトラック八郎ユーザー様にお知らせするのにちょうどよろしいかと。
バナー画像を作って、アドジェネ側で設定する。
それだけでトラック八郎だけでなく、
他のアプリでも配信される。

戦国CAST開発記

理由が2つ。
  1. 戦国モノのドラマを見ていて役者が混同
  2. monacaの利用制限
まず1つ目。
大河ドラマ「真田丸」、「直虎」を見て
それ以前に見た「信長協奏曲」なども含め、
特に三英傑と言われる信長、秀吉、家康は
それぞれの作品で誰が演じたのか混同してしまったこと。
あの作品ではあの人で、この作品は・・・と。

まず2つ目のmonacaに関して。
ずっと使わせていただいておりましたが、
スマホアプリ開発ツール「monaca」
無料で使える枠が年々狭くなってきたこと。
2018年6月1日より利用規約が変更され商用利用NGに。
個人での利用でアプリ内広告は・・・
使えるにしてもやはり何かと制限されているので
これからはVisualStudioで作っていこうかなと。