LoginSignup
0
0

[compose multiplatform 中級チュートリアル1]compose multiplatformでアプリを作る準備編

Last updated at Posted at 2023-12-10

はじめに

これは、前回のチュートリアルからさらに進んで、バックエンド(Firebase)と接続したTodoアプリを作るチュートリアルの第一章です。
試行錯誤の過程も全部載せます。

準備編

環境構築はできている前提で。
wiazardを開いて適当なアプリ名を入力。
私はSaikyoTodoにしました(クソダサ)
必要なライブラリはわからんので、とりあえず絶対に使いそうなやつだけチェックしてダウンロードします。以下の画像を参考にしてください。

[追加]Koinも入れてください!

試行錯誤するので、git管理も導入しています。

初回立ち上げ編

入れたアプリをそのままAndroid Studio上でビルドしようとしたら読んでられないような大量のエラーが出た。
一度見なかったふりをして説明書(README)を見に行きます。

READMEに書いてあることをchatGPTに翻訳させたらこんな感じ。

以下は、Compose Multiplatform アプリケーションを実行する前のチェックリストと各プラットフォームでの実行方法についての案内です。

## 実行前に!
 - [KDoctor](https://github.com/Kotlin/kdoctor)でシステムをチェックしてください。
 - JDK 17をマシンにインストールしてください。
 - プロジェクトのルートに `local.properties` ファイルを追加し、そこにAndroid SDKへのパスを設定してください。

### Android
Androidデバイス/エミュレータでアプリケーションを実行するには:
 - Android Studioでプロジェクトを開き、インポートされたAndroid実行構成を実行してください。

アプリケーションバンドルをビルドするには:
 - `./gradlew :composeApp:assembleDebug` を実行してください。
 - `.apk` ファイルを `composeApp/build/outputs/apk/debug/composeApp-debug.apk` で見つけてください。

### デスクトップ
デスクトップアプリケーションを実行するには: `./gradlew :composeApp:run`

### iOS
iPhoneデバイス/シミュレータでアプリケーションを実行するには:
 - Xcodeで `iosApp/iosApp.xcproject` を開き、標準の構成を実行してください。
 - または、Android Studio用の [Kotlin Multiplatform Mobileプラグイン](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile) を使用してください。

### ブラウザ
ブラウザアプリケーションを実行するには: `./gradlew :composeApp:jsBrowserDevelopmentRun`

local.propertiesファイルなんて入れてないなぁ。多分これかな。

簡単にやり方をまとめると

  1. Android Studioを開く
  2. メニューバーのtoolsを開く
  3. SDK Managerを開く
  4. 上の方に表示されているパスをコピー
  5. プロジェクトのルートディレクトリにlocal.propertiesを作成
  6. sdk.dir = "さっきコピーしたパス"

Androidだけ動かない。
なんだこれは。。。

調べたらこれっぽいんだけど回答がついてないから一旦諦める
https://stackoverflow.com/questions/77418029/how-to-create-a-kotlin-project-using-kotlinx-datetime-and-share-it-across-differ

問題となっているdatetimeのライブラリを抜いたらビルドできるようになった、時間周りの処理はバックエンド側に任せることにする

そして立ち上がった見た目はこんな感じ

予想外だったけどログインページのUIがついている!
ありがとう〜〜
作ったのはKonstantinさん
ありがとう〜〜

一旦準備終了、次の記事はページ遷移です。

0
0
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
0
0