Flutterのicon(Android)どうやっていれるのか。
※もう一度言います。Androidの話です。
まず皆様にお手間取らせないために、結論から言うと
- 用意するのは1024x1024の画像一枚だけでよかった。(1024なのは多分推奨サイズ、他のサイズでは実験していない)
- 書き換えるのは./pubspec.yaml
なんでデフォルトの置き換えだけじゃダメなんだよ
一枚の画像からリサイズしてくれるサービスあるし、デフォルトicon画像のある場所(ex.) android/src/main/res/minmap-***/ hoge.png)に同じ名前で入れてなんで反映されないのか。
キャッシュクリア? そんなの当たり前に試してるよ、エンジニアなら当たり前だ。
調べた結果。
最近のAndroid(Android 8.0以降)は、単なる1枚の画像ではなく 「背景層」と「前景層」を分けたアダプティブアイコンという仕組みを使っている。
どうやらこのアダプティブアイコンとやらが悪さをしているらしい。
=前景層や背景層が優先して表示されている
しかも
=手動での変更はとても難しい
なにそれ。
解決策の正攻法
Flutter界隈では flutter_launcher_icons というパッケージを使うのが「正攻法」
1枚のマスター画像から全サイズ・全プラットフォーム用のアイコンを自動生成してくれる。
ここで、先ほど用意した1024x1024のpngを仮にapp_icon.pngとする。
./assets/app_icon.png みたいに適当な場所にフォルダ作って入れる。
./pubspec.yamlに以下を記述する(ちょっと複雑)
dev_dependencies: # ↓もとからあるやつら flutter_test: sdk: flutter #↓追記################# flutter_launcher_icons: ^0.13.1 ###################### flutter_lints: ^6.0.0 # もとからあるやつ flutter: uses-material-design: true #もとからあるやつ #↓追加#################### assets: - assets/ #←画像入れたフォルダ ######################### #↓追加############################### flutter_launcher_icons: android: true image_path: "assets/app_icon.png" # これが1024x1024の画像 # Androidのアダプティブアイコン用の設定 adaptive_icon_background: "#FFFFFF" # 背景を白に指定 adaptive_icon_foreground: "assets/app_icon.png" # アダプティブも同じアイコンで構わない ######################################
yamlは、インデントと空白に厳しい


で、プロンプト等にて
flutter clean flutter pub get
エラーが出るとここで注意してくれる。
そして、
dart run flutter_launcher_icons
これで勝手にいろんなアイコン作ってくれるらしい
で、アプリを一回アンインストール、キャッシュクリア、何ならcold boot 心配なら初期化デモしてから
flutter run
これでできなければ、あとはAIにでも聞こう。
クリスマスに知ったGithubの RepositoryとProjectの違い
2025年12/24〜25の深夜にお届けします。
正直、あんまりネタ(勉強していない)が無かったと言うよりこれ自体を忘れていたのですが、アドベントカレンダーと銘打っているのに最終日に書かないわけには行かないとギリギリ思い出しました。
来年は、一ヶ月に一回は何か有益なものを載せたい所存。
今日はGitHubについての学び
RepositoryとProject
GitHub始めたてだと、とりあえず「New Repository 」ってボタンと「New Project」というボタンの二つが現れて、とりあえず迷った。
二つの違いは何か?
新しく何か開発したい場合は、どっちのボタンを押せば良いわけ?
実は、これら二つは役割が全く異なる。
使い方を理解して、使い倒してやろうじゃないか。
Repository とは
ソースコードを管理するもの。
新しく「プログラミングソースのあるもの」を管理する場合は、ここ。
ただしRepository機能を使ってできるのはあくまで
- 過去のバージョン・変更管理
- 複数人での作業をスムーズにするためにブランチが切れる
と言う点。
反対に言うと「タスクの管理」はできない。
Project とは
「タスクを管理」する機能。
昨今の開発のされ方(アジャイル開発、スクラム開発)に合わせて最近できた部分もあるらしいが、ToDoリストを作成できる機能。
『この機能、〇〇までに実装』
のように扱う。
複合して使うのか?
A. それぞれ単体で使うこともあれば、複合して使うこともある。
チーム開発であれば、RepositoryとProjectは案外同時に使用されるし、個人開発であればRepositoryのみ使われ、タスクがわけわからなくなってきたらProject機能で仕分けする、など上手く使い分けることができるようだ。
まとめ
Scrumの一般的な使い方がまだよくわからないけど、上手く扱えたら良いなと言う今日この頃です。
メリークリスマス🎁
エミュレータ電源入れてなかった
アドベントカレンダー12/13
薄情します。忘れてたよ!
Androidのエミュレータ実行エラー原因がしょうもなかった件。
このエラー
Error connecting to the service protocol: failed to connect to http://127.0.0.1:60790/PfFywjgyX9U=/HttpException: Connection closed before full header was received, uri = http://127.0.0.1:60790/PfFywjgyX9U=/ws
解決方法
エミュレータの電源を入れる
エミュレータ立ち上げただけで電源切ってたらこのエラーでた。
笑うしかないぜ。
カービィのエアライダー 実況ボイス消失事件
アドベントカレンダー12月6日
今日は技術ブログというか、ちょっと面白い発見をしただけなのだが
カービィのエアライダーの実況ボイスだけ綺麗に消えた
イヤホンジャックに一極端子のケーブルを挿したから
そのあと別のヘッドホンで試したわけでもないけど、あの声はサラウンド時専用ボイスであってモノラル端子では聴けないのだということを知った。
綺麗にボイスだけ抜けてるので、「極振りをそういう使い方するんだー」って思ったという話
今時一極端子のイヤホンジャックを持つイヤホンなんて早々ないのでな(持ってた人)
gitに-uなんてのあったんだね
すでに3日あいたアドベントカレンダー。
まあ、わかってたよ。毎日なんて無理だって。
本日の話。今日初めて知ったんだけど便利じゃんこれ。
git push -u origin main の -u
今まで普通に、正直に
git push origin main
って毎回打ってたけど。
なんなら
git push origin hoge:main
とか色々やってたけど(これは例外か)
git push -u origin main
を一回やるだけで?
ローカルとリモートのリポジトリがくっつく、だと!?
こうしておけば二回目からはローカルリポジトリで main にいれば
git push
git pull
だけで良い、だと...
オプションいっぱいあるけどー、便利なのはしておきたいな〜
※ -u: --set-upstream
Perplexity の本気を見た気がする
アドベントカレンダー2日目
Perplexity の本気を見た気がする
パプレとは
なんかソフトバンクが提供してる、AIをいろいろ詰め込んだ検索エンジン的なもの。
結局のところChat-GPTみたいに対話型で使えるわけなんだけど、Chat-GPTもGeminiも他にも色々内包してて、話題に応じて適当なエンジン選んでる、らしい(本人談)
こんなことをやってみた
「Flutterで○○で○○して○○するというアプリを作るのだが、画面はこれとあれとそれの三つで、これにはこれこれこれのボタン、でそれを押すとあれの画面に飛んで、あれにはこう言う機能がついてて、あれがこうなるとそれに移って、それからこれに戻るボタンもどこかにある。そんなUIを生成して欲しい」
といって、まあ画像生成をしてもらった。
そこまではよかった。
画像生成については、一回暴走すると変になるから、そこはパプレの愛嬌というかカオス部分というかクセというかなんというか。
ただ単に相談してみたつもりだった
「Flutterで○○で○○して○○するというアプリを作るんだけど、二人で作業するとして、どういうふうにタスク振り分けると良いかなあ?」
「ああ! この前言ってたあれのことですね(別日)!! こんな感じはどうでしょう!!」
すでにタスク化された表が登場
なんのWidget使えば良いかとかも書いてあった。
え? あ、ありがと。
これからもよろしくな、相棒。