7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

KMMサンプル作ってみた

Last updated at Posted at 2021-03-14

(前提)以前の記事へのアンサー的なものです。

こんな記事を書いて
「転職したいなら土日でサンプルアプリ作れや!!!」
と言ったものの、自分自身で何もやらないのはどうなの?と思い、
土日を使って今からサンプルアプリ作ります(現在時刻2021/03/13(土曜) 26:00)

土曜日ってさー、いきなりやる気出ないよね?俺は出ない
・・・やっていきます

目的みたいな何か

what's KMM

デバイスのアプリ開発界隈で話題の

Kotlin Multiplatform Mobile

の略です。
iOS、Android開発で共通ロジック持てる。素敵。

なんでそんなことするの?

  • KMMに興味があった
    • Flutter個人でやってていいところと悪いところはかなり見えた
      • Dartがクソ
      • providerがわかりづらい
        • アーキテクチャとしてはわかるんだけど、なんか書きづらい
      • レイアウトがandroid,iOS一緒になってしまう
        • シンプルなアプリや、デザインの方向性をデザイナーに一任してるなら別
    • KMMは最近流行りのマルチモジュールだし現場はともかく自分でマルチモジュールやってみたい気もしていた
    • アルファ版だけどKotlinだって0.9から触ってたし適当に英文読めばいいんでしょ?(ざる見積もり)
  • (転職先に)魅せる材料にしたい
    • 転職用githubに何もない状態なのが辛い
    • 以前qiitaで転職促す記事書いたため
  • 職場のみんなにドヤれる可能性
    • 今の職場は関心はあれど誰も触っていない
    • 自社に関してはそもそもAndroidエンジニアがいない:blush:
    • 1分でいいからイキりたい
  • エンジニアは流行り物好きです
    • 波に乗れ

今回得ようとしているもの

  • androidマルチモジュールの雰囲気
  • KMMのダメなところ
  • KMMの注意点

KMMの良いところを得ようとしないのは、
調べれば利点がわかるためです。

本当はKMMやりながら、
更にモジュール分割進められるかとか考えたかったけど時間の兼ね合いでやめました。

やってみた結果

android側でしか動作確認してません。

KMMのダメなところ

アルファ版ですし、半日くらいしかやってないですが思うことを書きます。

  • firebaseなどの設定がうまくいかないらしい
    • googleさんとjetbrainさんの連携を信じる?でもflutterやってるしな・・・
  • androidで使用しているライブラリがなんでも使えるわけではなさそう
    • とりあえず、通信はktordiはkodeinあたりになりそう
  • androidモジュールからsharedのモジュールにアクセスする際、参照できないから開発しづらい
    • 昨今の開発に慣れている身としては、IDEからのサポートないのが辛い
  • androidStudioが完全にサポートできていない
    • IDE上はエラーになっているが、普通に実行できたりする。
    • importが自動でされない :cry:
      • 外部ライブラリが多いから本当にしんどい
    • ktorとか使ったことない通信ライブラリをIDEサポートなしで始めるのはキツイ
  • actualexpectがわかりづらい
    • sharedの中でもOSごとの差分が出そうな時とかに、使って欲しいのかな?

エラー出るけど実行できるよ

スクリーンショット 2021-03-15 1.51.01.png

まとめ

土日使ってサンプルアプリ作って、得たいものはある程度得られました。
サンプル作る前からKMMのメリットは感じていたものの、
思ったより便利じゃない・・・そもそも気持ちよく開発できない。
と八流エンジニアの私は思うので正式サポート待ちでいい気がします。
ただ、新しくアプリ作るのにKMMを選択するより、既存アプリの運用で、
一部をKMMにしていく、みたいのはアリかもしれません。

次はアジャイル系の話したいです。(たぶんしない) → リンク集用意した
実は裏で、もう1つサンプルアプリ作ったせいで時間かかった説はある。

サンプル作っていると、やってみたいこと増えてきて期限に間に合わない可能性が出てきます。
今回は、サンプルアプリを分割することで、この記事を書き週末を終えられました。
自分のコミットメント力として、これ見て貰えばいいんじゃないですかねー?:sunglasses:
あー、土日終わったー、悲しい:innocent:

転職のお誘い来ないバグはいつ修正されるでしょうか?待ってますよ????
寝ます(2021/03/14(日曜)27:00)

参考資料

↓とりあえず基礎を読む

↓真っ暗闇の中前進するのに使える

↓少し細かいところ

↓sharedのアーキテクチャはこれでいいと思う

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?