Domain Driven Design の実装例 (Flutter)
今年の上半期は仕事として主に、既存のiOS/AndroidネイティブアプリをFlutterでリニューアルするというプロジェクトに集中して取り組んでいた。 途中まで bloc + freezed で実装していたものを、急遽、 riverpod + freezed + state_notifier に書き直すことになったりしたが、先週頭に無事リニューアルリリースに漕ぎ着けた。 (段階的リリースまで完了)
ちなみに私独りの力ではなく、めちゃくちゃ優秀な同僚達がリードしてくれていたのが大きかった。
今後の振り返りのため、今回の仕事のアーキテクチャである Domain Driven Design with riverpod + freezed + state_notifier の実装例を、OpenSeaを題材にしてgithubに公開した。
Support Library からAndroidX への移行作業
特に更新をしていない趣味アプリのAdMob収益が最近地味に発生している事に気づき、アプリでお小遣い稼ぎブームが自分の中でメラメラと再燃。
早速、放置していた件のAndroidアプリのソースコードを引っ張り出して今後のスムーズなアップデートのため Support Library
からAndroidX
への移行作業を行った。
基本からしっかり身につくAndroidアプリ開発入門 Android Studio 3対応 (「黒帯エンジニア」シリーズ)
- 作者:森 洋之
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2018/05/22
- メディア: 単行本
直近の仕事でのAndroidアプリ開発は AndroidX
での新規開発だったこともあり Support Library
の移行作業で悩むという経験をしていなかったので、やや不安は感じたが、基本 auto migartion
を実行して細々としたエラーを潰すぐらいだろうと高を括っていた所、まさにその通りだったので20分もかからずに移行は完了した。 (UI系のライブラリもちゃんと AndroidX対応されていた)
ただ、AndroidX
対応より AdMob SDK
(Ads SK)を更新したら広告表示の仕組みが変更されていてそちらのキャッチアップに少しだけ手間を要したものの、すぐに対応できた。
気を良くして、久しぶりに機能追加でもしようかとソースコードを読み直してみたら「うーん」と苦笑。
過去の自分のコードに対して苦笑するのは成長した証と慰めつつ、色々修正後にコミットを積んだ。
ユニコーン企業の凋落に思う
エッセンシャルフォン PH-1
にandroid 10
が配信されていた
エッセンシャルフォン PH-1
というAndroid端末を皆さんは御存知だろうか?
PH-1
は、Androidの生みの親と言われたアメリカの技術者(Googleにて技術部門担当副社長も歴任)アンディ・ルービンが自身の会社Essential Products Inc.よりリリースした新時代のスマートフォンで、ベゼルレスの洗練されたデザインとモジュラーフォンという新しい概念を前面に打ち出し2017年の秋頃に華々しくリリースされた。
当初は業界内で注目を浴びたものの、その後値段の高さやカメラ性能が期待されていたレベルに至らないといった諸々の要因から、業界のポジティブな反応とは裏腹にその売上は低迷していくこととなる。
僕自身、このエッセンシャルフォン PH-1
は2018年秋頃に投げ売り価格となったタイミングで購入して、モジュラーアタッチメントのカメラでひとしきり遊んでみたものの普段遣い端末に昇格させることなく(そもそもFeliCaがない)そのまま放置状態にしていたのだが、 android 10
に対応しているということを思い出したので引き出しの奥底から救出・給電後、久しぶりに起動してみた。
android 10
の配信が来ている。
potatotips #56 参加報告 (Android)
potatotips #56にAndroidブログ枠として参加させていただきましたので、Androidの発表内容をまとめました。
https://github.com/potatotips/potatotips/wiki/potatotips-56
開催場所はスマートニュース株式会社 さんです。
続きを読むNFCチップ搭載のPVCカードを買った
Amazonを見ていたらamiibo(アミーボ)等で使われている NFCチップ搭載の硬質塩化ビニールカード(PVCカード) が100円以下で手に入るようだったので、試しに買ってみた。
ちなみにNFCは、13.56 MHzの周波数を利用する通信距離10cm程度の近距離無線通信技術 Near Field Communication の略称だ。
NFCには幾つか種類(規格)が存在していて、日本だとお財布携帯などで使われているFeliCa(フェリカ) type-Fが有名だろう。 ちなみに今回購入したチップはamiibo(アミーボ)やTaspoで使われている type-Aという規格のものだ。
続きを読むFinish this activity, and tries to finish all activities immediately below it in the current task that have the same affinity
Androidアプリを開発している人から「新しい画面に遷移したら、それまでの全てのActivityを消したいんだけど、どうやるのかな?」という質問があった。 どうやら画面遷移時に下記のコードを試してみたところ、期待していた動作が得られなかったとのことだ。
Intent intent = new Intent(getApplicationContext(), NextActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
確かにインターネット上で同様のIntentのFlag指定コードを「画面遷移時にActivityをクリアする時の常套手段」として紹介する記事を良く見る。
ITベンチャーで働くエンジニアのメモ帳|【Android】Intent発行時にActivityスタックをクリアする方法
しかし実際の所、こちらのコードは新規の画面を積む時には機能しない。
続きを読むハンバーガーメニュー
今僕が開発に携わっているAndroidアプリはボトムナビゲーションタイプ、いわゆる「下タブ」と呼ばれるUIのナビゲーションパターンを採用している。本来Androidアプリのナビゲーションパターンは左から開くドロワー(ハンバーガーメニュー)メニューパターンが推奨されているが、このアプリの場合は、開発の歴史的経緯からiOS版のデザインを踏襲した。(そのままコピッた)
続きを読む