サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
www.codingfeline.com
全体のおよそ7割がKotlinで書かれた共通コードです。 この数字はiOS/Android合わせた全体に対しての比率なので、各OS毎で計算すると8割近くが共通コードとなっています。 アーキテクチャ レポジトリ構成 レポジトリ構成はモノレポを採用しています。KMP, Android, iOSすべてのコードを一つのレポジトリで管理している、ということです。 モノレポを採用している理由はいくつかあるのですが、一番大きいのは「共通コードの読み込みが簡単」というものです。 モノレポじゃない選択肢としてKMP, Android, iOSをそれぞれ別個のレポジトリで管理する、というものも考えられます。 しかし、その場合だとKMPの成果物を各OSのレポジトリから使用する際にひと手間必要になってきます。 git submoduleで読み込むのか privateなMaven RepositoryやCoco
AndroidDagashi、ご存知ですか。 英語圏のものを中心に、Android関連のニュース/記事を日本人向けにまとめている週一更新のまとめサイトです。 2018年の2月に開設して、おかげさまで2年が経ちました。 さて今日はAndroidDagashiをどうやって運用しているかざっくりまとめてみます。 全体像を図示するとだいたいこんな感じです AndroidDagashiはドメインからわかる通り、GitHub Pagesでホストされた静的サイトです。 Vue.jsを利用したWebアプリケーションフレームワークであるNuxt.jsの、静的サイト生成機能を使っています。 このサイトは、2つのGitHubレポジトリで構成されています。 一つはサイト本体のコードが置いてあるAndroidDagashi/androiddagashi.github.io。 そして、記事データを管理するAndroi
Kotlin Multiplatform Projectで考えることいろいろApril 16, 2019kotlinkmp グダグダ書くよ Android/iOSアプリをKotlin Multiplatform Projectで作るのにいい感じのアーキテクチャをいろいろ試行錯誤している。 Kotlin Multiplatform Projectでアプリを作るにあたって、単純にAndroidアプリを作るようにはいかないところがいくつかあるので、なかなかおもしろい。 その"おもしろい"点というのは、たとえば下記のような点だ。 Kotlin Multiplatform ProjectではRxが使えないLiveDataもAndroid Specificなので使えない非同期は基本Coroutinesでやる必要があるCoroutinesはSwiftから使えないKotlin/Nativeではfreezi
Kotlin CoroutinesのChannelとAndroidのライフサイクルApril 4, 2019kotlinAndroid kotlinclass FooViewModel { private var _state: State val state: State get() = _state private val _states = BroadcastChannel<State>(1) val states: ReceiveChannel<State> get() = _states.openSubscription().also { _states.offer(state) } // reducerとか他にいろいろある } ちょーざっくりこんな感じのViewModelがあるとする。 MVI的なアーキテクチャになっていて、 FooViewModel.states がState
Kotlin Multiplatform Project向けのGraphQLラッパー生成ライブラリ、kgqlを作ったFebruary 27, 2019kotlinkmp AndroidとKotlin Multiplatform Projectで使える、GraphQLのドキュメントからコードを生成するGradle Pluginを作った。 kgqlという。 これ実際の成果物を見てもらうのが早いと思うので、こんな感じ。 // User.gql query User($login: String!) { user(login: $login) { id login bio avatarUrl company createdAt } } query Viewer { viewer { login } } kotlinpackage com.sample import com.codingfeline
SlackのGitHub integrationで色々流れてこない時にすることMarch 27, 2018TILslackGitHub ちょっと前にGitHubのSlack integrationがリニューアルした。これは新しいSlack Appのリリースとして実施されたので、古いものから新しいものへの乗り換えが必要。 あたらしいAppは/githubコマンドを使って、Slackのチャンネル画面から対話形式で設定を行う。 たとえば通知を受け取るレポジトリを新しく追加するときは/github subscribe owner/repoみたいな感じ。 ただこれを実行するだけだと問題があった。プルリクエストについたレビューやコメント等が通知されてこないのだ。 調べてみるとこのGitHub Appのレポジトリがあって、そこに細かい設定方法が記載してあった。 Configuration You ca
だいたいこんな感じ。 LEDとその抵抗は、お好みに合わせて調達してください。今回のビルドではレイヤ切り替えのインジケータとして3つだけ使ってます。 キーキャップも値段様々なのでお好みで。 ちなみにワイヤは30AWGのものを使っています。 制作について ErgoDox EZで使ってるキーマップを流用したかったので、本家レポジトリにあるQMK用のガイドと、その ガイドの作者が書いたビルドログ、あとはこの記事を書いてる時点ではマージされてないこのPR を参考にしました。 これらのガイドではErgoDoxにあってDactylにない内側のキー3つを追加しているけど、この計6つのキーを無視してもErgoDox EZのファームウェアがそのまま動いた。 左右のキースイッチはんだ付けが終わったところ。 ガイドには「特に接着剤使わなくてもキースイッチ固定される」って書いてあるけど、作ってみた感じホットグルー
送料はちょっと思い出せないのだけど、だいたいこんな感じ。 ちょっとアホやったなーって思うのは、海外の通販ショップを部品ごとに使い分けたこと。店によってはかなり送料かかるので、品揃えのいい店でまとめて購入したほうがいいです。 ケースはnooges/lets-split-v2-caseで配布されているものを使っています。どのファイルを使ったらいいのかちょっとわかりづらいんですが、sandwich-split.epsを使ってPonokoに依頼を出しました。 USBケーブルは、Pro Microのジャックがすぐ壊れそうで不安だったので、MacbookのMagsafe(もうないですけど…)っぽい感じで、抜き差しせずに使えるものを用意しました。 制作について 大体前掲のウェブサイトのとおりに作っています。 あとはYoutubeでライブストリーミングしながら作ってる人を見つけたので、これも適宜確認。
(VirtualBox) ゲストOSからホスト機のローカルホストにアクセスするApril 20, 2015virtualboxmodern-ie モダンIEのVMでサイトの表示確認をしたいときなど、VirtualBox上のブラウザからローカルで動かしてるサイトを見たいときに使えます。 VirtualBox標準の設定だと、10.0.2.2でホスト機のローカルホストにアクセスすることができます。 以上です。 参考: Connect to the host machine from a VirtualBox guest OS?
TwitterにURLを共有するAndroidアプリ、Omnitweetyを公開したNovember 10, 2015Androidomnitweetytwitter 掲題のとおり、アプリをGoogle Play Storeに公開した。 名前は"Omnitweety"。「オムニツイーティ」と読む。 機能はホントにシンプルで、「ブラウザ系アプリのシェア機能から、ワンタップでURLをTwitterに共有する」だけだ。 ブラウザの共有からOmnitweetyを選択 画面下部にポップアップが表示される。あとは待っていれば自動でTwitterに共有される。真ん中の青いボタンをタップすれば即座に共有される。 もし共有する前にコメントを入れたい場合は、ポップアップの鉛筆アイコンをタップすれば編集画面が起動する。(文字数はURL短縮を考慮) 操作は基本的にこれだけだ。あとは設定画面で"NowBrowsin
ReactNative for Androidで実機をデバッグに使うにはSeptember 17, 2015Androidreactnativejavascript 先ごろ"ReactNative for AndroidでHello World(セットアップ方法とか)"という記事を書きましたが。そこで、 ※私の環境では実機(Nexus6 5.1.1)で動かすことができなかったので、エミュレータのインストールもしておくといいと思います。 というふうに書きました。 その後、ドキュメントを読み漁ってAndroidの実機でデバッグする方法がわかったのでアップデートしておきます。 すごく簡単で、一つコマンドを実行するだけです。
---更新終わり。↓下から本文�--- 単純にonResume/onStartでバックグラウンド復帰時の処理を書くとActivityの生成時やバックキーで戻ってきた時等、処理しなくていいタイミングでもコードが走ってしまいます。 ActivityManager#getRunningAppProcessesで実行中のプロセスを取得し、アプリのforeground/backgroundステータスを見ることもできますが、一部端末でうまく動作しないことがあるようです(そもそもbackground/foregroundを判定するためだけに実行中のプロセスを全部調べるのもアホくさい気がします)。 そこで、API14(ICS)から追加された、Application.ActivityLifecycleCallbacksを利用します。このAPIを利用すると、すべてのActivityのライフサイクルを監視し、任
(Android) 端末にインストールされているアプリのAPKファイルを取得するApril 17, 2015Android 軽くコマンドの説明をします。 1. adb shell pm list packages 端末に入ってるアプリのパッケージ名一覧を取得しています。 この中から、自分が取得したいアプリのパッケージ名を探しだしてください。 2. adb shell pm path com.example.someapp com.example.someappには、1で取得したパッケージ名を入れてください。 指定したパッケージの端末内でのフルパスを取得しています。 3. adb pull /path/to/target/app /path/to/target/appには、2で取得したパッケージのフルパスを入れてください。 おそらく、/data/app/から始まるパスです。 このコマン
このページを最初にブックマークしてみませんか?
『www.codingfeline.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く