Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gradle Multi-projectで始める最強のAndroid個人開発
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuta Tomiyama
January 22, 2020
Programming
62
0
Share
Gradle Multi-projectで始める最強のAndroid個人開発
Zli × DeNA 合同LT にて発表
Yuta Tomiyama
January 22, 2020
More Decks by Yuta Tomiyama
See All by Yuta Tomiyama
ビルドプロセスをデバッグしよう!
yt8492
2
450
モバイルアプリ開発を始めよう!
yt8492
0
110
Git勉強会
yt8492
0
200
なんでもやってみる勇気
yt8492
0
130
Android Autoが思ったよりしんどい話
yt8492
0
240
apollo-kotlinにcontributeした話
yt8492
0
180
DMM TVのSDカードダウンロード機能を実装した話
yt8492
1
970
今だからこそ知りたいKotlin Multiplatform
yt8492
0
330
State management and API calls in Jetpack Compose: Learning Apollo + Jetpack Compose through React Hooks
yt8492
0
1.3k
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
160
Kingdom of the Machine
yui_knk
2
1.4k
AI-DLC Deep Dive
yuukiyo
9
5.6k
UaaL×Androidアプリのメモリ計測 — Memory Profilerの先へ
rio432
0
110
継続的な負荷検証を目指して
pyama86
0
330
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
220
2026-04-15 Spring IO - I Can See Clearly Now
jonatan_ivanov
1
180
Vibe NLP for Applied NLP
inesmontani
PRO
0
610
運転動画を検索可能にする〜Cosmos-Embed1とDatabricks Vector Searchで〜/cosmos-embed1-databricks-vector-search
studio_graph
1
660
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
28
19k
t *testing.T は どこからやってくるの?
otakakot
1
910
Explore CoroutineScope
tomoeng11
0
170
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
170
The Cult of Friendly URLs
andyhume
79
6.9k
30 Presentation Tips
portentint
PRO
1
290
Agile that works and the tools we love
rasmusluckow
331
21k
The browser strikes back
jonoalderson
0
1k
A Tale of Four Properties
chriscoyier
163
24k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
Six Lessons from altMBA
skipperchong
29
4.2k
Producing Creativity
orderedlist
PRO
348
40k
Documentation Writing (for coders)
carmenintech
77
5.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
430
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Transcript
Gradle Multi-projectで始める 最強のAndroid個人開発
自己紹介 HN: マヤミト 本名: 富山 雄太 会津大学 学部2年 Kotlin大好きおじさん GitHub:
https://github.com/yt8492 Facebookのすがた Twitterのすがた ID:yt8492
Gradleとは オープンソースのビルドツール Androidアプリ開発などで使われている ビルドスクリプトはGroovyもしくはKotlin DSLで書かれる
Multi-project Gradleのプロジェクトはサブプロジェクトを作成することが可能 複数のサブプロジェクトを作成することができ、サブプロジェクトのサブプロジェクトを作 成可能 -> 責務ごとに分けたり、成果物ごとに分けることが可能
個人でのアプリ開発 サーバーもAndroidも全部1人でやる -> AndroidエンジニアはKotlin好きが多いのでサーバーもKotlinでやる サーバーとAndroidのプロジェクトを分ける -> サーバーとAndroidでモデルなどを二重に定義する面倒臭さ、モデルに変更があった 場合に片方に変更漏れなど 1つのプロジェクトでサーバーとAndroidを両方開発する(Multi-project) ->
共通化ができてよさそう!
趣味のプロジェクトで導入してみた
プロジェクトで使用した技術 - サーバー - gRPC - SQLDelight - Android -
Jetpack - Dagger2 - gRPC - 共通 - Kotlin Coroutines
Gradle Multi-projectとしての構成 - common - 共通のDomain ModelやUseCaseの定義 - proto -
.protoファイルからJavaのStubやKotlinのラッパーを生成 - 各プロジェクトが生成されたファイルを参照する - server - android
このプロジェクトにおける開発の流れ 1. commonにDomain ModelやUseCaseの定義を書く 2. protoにmessageやserviceのprotoを書き、./gradlew :proto:generateProto を実 行 JavaのStubやImplBase、Kotlinのラッパーが生成される
3. serverとandroidでUseCaseのinterfaceをそれぞれ継承して処理を書く
common
proto
proto
server
server
android
android
Android開発でのGradle Multi-projectのはじめかた 1. 普通にAndroid Studioでプロジェクトを作る 2. IntelliJ IDEAでプロジェクトを開き、 File ->
New -> Module -> Gradle -> Kotlin/JVM (Ktorを使いたい場合は File -> New -> Module -> Ktor) を選択、モジュール名などの設定をする 3. プロジェクトルートのsettings.gradleにモジュールが追記されていることを 確認(されていなかったら手動で設定) 4. プロジェクトを参照したいプロジェクトのbuild.gradleのdependenciesに 参照先のプロジェクトを追記
Android Studioでプロジェクトを作る
IntelliJ IDEAでモジュールを追加する
settings.gradleにモジュールがあるか確認する
build.gradleに参照したいプロジェクトの依存を書く
サブプロジェクトのGradleタスクの実行方法 ./gradlew :サブプロジェクト名:タスク名 例: ./gradlew :proto:generateProto ./gradlew :server:run
まとめ - Gradle Multi-projectを用いると、サーバーとAndroidを1つのプロジェクトで開発す ることができる - 共通部分の定義が楽になる - ProtobufのStub生成などをProjectに分けることができる Gradle
Multi-Projectは間違いなくDXが向上するのでぜひ試してみてほしい
ありがとうございました!