Blog日々のアプリ開発についてや雑記など。2020-02-18Railsアプリで使っているライブラリのバージョンを一覧表示するこんにちは、アプリ開発をしている@HituziANDOです。受託開発で仕事を受けたりしていると、提出するドキュメント(設計書など)に、ソフトウェアバージョンなどの記載を求められることがあります。今日もRailsで作ったアプリケーションで使用しているライブラリ一覧を記載する必要がありました。毎回やり方を調べている気がするので、コマンドをメモしておきます。@babel/helper-define-map@7.5.5...あとは出力されたリストを適宜加工してドキュメントに貼り付ければ完了です。Swiftこの記事では、アプリを起動したとき、新バージョンがリリースされていることをユーザに伝え、アップデートを促す仕組みの実装方法を紹介します。強制アップデートはゲームアプリなどでよく見る仕組みですね。強制力の強いものだと、アップデートするまで、アプリを利用できなくするものもありますが、必ずしもアップデートできる通信環境に居るとは限らないため(地下鉄に乗っているときなど辛い)、アップデートを促すまでに留めた半強制くらいが僕は好みです。アプリのバージョンに乖離が生じると、最新機能を提供できないのはもちろんのこと、既存機能を改修しづらくなってきます。DBのマイグレーションを何世代かに渡って行っているとき、バージョンが飛んでいると思わぬバグを踏んだりします。アップデートは放っておいてもされていくものと思っていましたが、計測してみると意外にも乖離していることが分かりました。Sketchの例を見ても、バージョンのばらつきが見受けられます(離脱ユーザも含まれているため、正確な数字ではないですが)。Sketchにも導入しています。APIを利用しています。Storeで配信されているアプリの情報を無料で取得することができます。v5を使用しています。Storeから配信されるようになった段階で、取得できるアプリ情報のバージョンが自動的に最新のものになるため、自前で配信バージョンを管理するサーバを立てる必要がありません。最新バージョンの更新し忘れとかも起きません。<YOUR_ITUNES_ID>の部分にはバージョン情報を取得したいアプリのiTunesIDに置き換えてください。Store上のアプリのページを開いたときのURLに表示されています。同様にstoreURLStringも置き換えてください。iTunesIDを調べる上記の実装では1日1回バージョンの更新チェックをするようになっています。バージョン比較は、major.minor.patch形式のバージョン文字列をドットで分割しInt型に変換(versionToInt(_:)メソッドを見てください)したもので比較しています。上記のやり方ではminorとpatchは0~999の1000ステップしか値を取れませんが十分でしょう。AppStoreクラスを使うときはViewControllerで以下のようなメソッドを作っておき、viewDidAppearやUIApplication.willEnterForegroundNotificationをオブザーブしたメソッドなどで呼び出します。"アップデートしてください。}}以上の実装で、新しいバージョンがリリースされたことをユーザに伝えることができるようになりました。半強制アップデートの仕組みを導入したことでアップデートが促進されるか楽しみです。TODOとはシンプルなToDoリストアプリです。いつまでに何をやるかだけにフォーカスしたToDoリストが作れます。タスクリストは期限が近い順に自動的に並ぶので、上から順番にタスクをこなしていけます。今回の主なアップデートは以下の2点です。タスクごとに通知のオン/オフが設定できるようになりました今まではアプリ全体での通知設定しかできませんでしたが、新バージョンではタスクごとに通知のオン/オフ設定ができるようになりました。これでアラームの必要がないタスクは通知オフにできます。現状はタスクの期限時刻の2時間前に通知される仕様ですが、将来的には10分前、1時間前など任意の時間に通知設定ができるようにするつもりです。機能の実装自体は簡単ですが、UIをどうするかで悩んでいます。期限日がわかりやすくなりました個人的にこのアプリを使ってて、期限日がわかりにくい、特に曜日の表示がほしいと思い、以下のスクショのように日時の表記を修正しました。フォントサイズ自体は小さくなりましたが、太字黒色にしたことで結果的に見やすくなりました。して見ると、曜日の表示って重要だなと思います。曜日があるのと無いのとで認識が全然違う。アプリ画面2その他、設定ボタンを小さくしたり(設定画面は普段あまり見られない画面のため、歯車アイコンは控えめなサイズにしよう!)など、軽微な修正を含んでいます。Storeで配信中です。ver.2.2.0がリリースされました!Tweet広告を非表示にする2020-02-012020年1月のアプリ収益は1,631円でした。個人開発2020年1月の個人開発しているアプリ収益は1,631円でした。内訳は以下の通りです。TODOの売上が伸びました。TODOの総ダウンロード数は260DLくらいで、実際利用しているユーザ数は17人程です。利用率としては7%くらいなので、ちょっと低いですね。世の中にToDoリストアプリは腐るほどあるので、この分野で数字を伸ばすのはかなり厳しいですが、それでも継続して使ってくれる人が増えてきている感じはするのですが...圧倒的に母数が少ない。メモアプリについてメモアプリの現在の有効なインストール数は367で、毎日60人程に使われています(有難い!)。利用率は16%で、ほぼ横ばいです。日間に使用されたデバイスのうち、このアプリがインストールされているデバイスの数)です。2020/01こちらの記事(https://www.eda-inc.jp/post-3428/)では、アプリをインストール後もそのアプリを使い続けるユーザーの割合を調べた「継続率」も報告されています。それによるとグローバル平均は21%で、約8割のアプリはインストール後7日経つと使われなくなってしまうということがわかります。記載されており、継続率はグローバル平均の21%には届かず、また「ツール」カテゴリにおいては19%ということから、ほぼ実態に近い数字になるかなと思います。逆に言うと、今の母数のままでは、これ以上大幅な増加は見込めないということです。Programの年会費分よりは稼げることになります。目指すところは継続して使ってくれるユーザ数を100倍にすることですね。TODOは、利用率を13~14%まで上げ、有効なインストール数13,000DL/アクティブなユーザ数1,700人が目標です。Storeの「仕事効率化」カテゴリで131位に(瞬間的ではありますが)ランクインしました。2020/01/31意外とインストールされているなと思っていましたが、Storeからの導線でしょうか。ランキングにあるからインストールしてみたものの、なんだこの糞Appってなって使われなくなるのが目に見えます。インストールされるならば、ブラッシュアップして収益性を考えても良いかもしれない。18:122020年1月のアプリ収益は1,631円でした。Tweet広告を非表示にする2020-01-27メモアプリver2.1.1をリリースしました。個人開発しているAndroidアプリ『メモアプリ』のバージョン2.1.1をリリースしました。メモアプリとはシンプルなメモ帳アプリです。ステータスバーに常駐しているため、ステータスバーからすばやく起動して、パッとメモすることができます。瞬間的に思いついたアイデアを残したり、ToDoリストや買い物メモとしても使えます。今回のアップデートは、フィルターボタンの位置の修正と軽微なものです。従来のボタンの位置では、メモの大部分と被ってしまい、読みづらくしていました。今回の修正では、ボタンを右側に配置し、ボタンサイズも少し小さくしたため、従来よりもメモが読みやすくなっていると思います。ボタンのデザインも少しカッコよくしました。Playで配信中です。23:47メモアプリver2.1.1をリリースしました。Tweet広告を非表示にする2020-01-25コンビニで売っているほうじ茶チーズティーにハマっています。株式会社エルビー)です。セブンイレブンで売られています(他のコンビニではまだ見たことがない)。昨年、タピオカミルクティーの次に来るのはチーズティーと言われているとか言われていないとかで、何回か飲んだことがあるのですが、そのチーズティーがコンビニで売られているのを見つけ、つい買ってしまいました。その味は、一言でいうと、めちゃ美味しい!です。僕の奥さんも美味しいと言って飲んでいます。プロセスチーズが入っているようですが、チーズ感はあまり無く、味がしつこくないので、とても飲みやすいです。逆に、チーズ臭さというかチーズ感を求めている人には物足りないかもしれません。ALLEYとかで買うよりは断然安いです。毎朝、出社前にセブンに寄って買って、職場で飲んでいます。前述したように、味がしつこくないので、朝からでも全然飲めます。(昨日は売り切れで買えませんでした。密かに人気が出ている!?)しばらくはコレを飲んでプログラミングする日が続きそうです。18:54コンビニで売っているほうじ茶チーズティーにハマっています。macOS2日間くらい以下の事象に悩まされていました。時間を浪費した気がするので、また同じ事象が生じたとき用に備忘録を残しておきます。StoreにアップロードできないPhotoshopが起動できないいずれもいつの間にかできなくなっていました。結論から言うとタイトルにもあるように、/tmpのパーミッションが原因だったようです。曖昧な表現なのは、色々やっていて、いつの間にか治った感があり、結局、/tmpのパーミッションが原因だったか確認できていないためです。焦っていたのでBefore/Afterの状態遷移を確認していなかったです...事象VPN接続できない!これは非常に焦りました。VPN接続できないと仕事に支障をきたすためです。AnyConnectアプリを使えば自分のアカウントでも接続できたため、これは自分のMacBookに原因があるのだなと切り分けはできました。StoreにiOSアプリをアップロードできない!このiOSアプリは個人開発しているアプリなので、緊急性は低かったのですが、早くリリースしたいという思いもあり、アップロードできないことにイライラしていました。Profileの更新など思いつくことは一通りやってみたのですが、いずれもダメでした。Photoshopが起動できない!起動しようとすると、100%応答なしになる。Aidセーフモードでの起動からの再起動SMCリセットMacがおかしいかな、というときに試すことはやってみましたが、いずれも効果なしでした。光が見えてくる事象が解消されず悶々としていましたが、他の仕事も進めないといけないため、その作業をしているとき、偶々、以下のMySQLが起動できないとうエラーに遭遇しました。権限が無いというエラーなので、以下のコマンドで権限を与えてやりました。/tmpこれでMySQLは無事起動できました。この時、ふと思ったのです。/tmpって上記の事象のときにも使ったりするんじゃないかと。(これか、これが原因なのか!?)/tmpのパーミッションなんて自分で変更することはまず無いので、いったいいつ誰が変更したのか...結局、何かよくわからないですが、もしまた同じような事象が発生したとき、チェックポイントの一つとして覚えておこうと思います。engineer使いやすさと美しさを目指して、日々、アプリ開発しています。TODO』(iOS)、『メモアプリ』(Android)の作者。ver.2.2.0がリリースされました!2020年1月のアプリ収益は1,631円でした。メモアプリver2.1.1をリリースしました。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。