Androidのライブラリを作って公開してみた
IT技術
アプリ開発に少し飽きてきたから違うなにかを開発したい!
(株)ライトコードでモバイルアプリケーション開発をしている笹川(ささがわ)です!
いきなりですが、スマホアプリ開発に飽きちゃいました!
なので、ライブラリを作ってみることにしました!(ドドーン)
どんなライブラリ?
最近のAndroidアプリ開発では、言語に「Kotlin」を利用することがスタンダードになってきました。
Kotlinで書くことで、Javaよりも記述が減るのが嬉しいですね!
さらに「Kotlin Extension(拡張)」をすることで、より簡素に記述できるようになります
よく使うロジックや、ちょっと面倒なロジックを「Kotlin Extension」で用意されていたら、みんなの「DevelperExperience」は素敵なことになるのでは?
ってことで、そんなライブラリを作ることにしました!
それがこちら!
【common-ktx】
https://github.com/sasa-nori/common-ktx
(名前については思いつかなかったので触れないでください)
どんなことが出来るの?
さて、どんなことが出来るのか!?
例えば…
ダブルクリック禁止のクリックリスナーをセットできる
こんな感じで、ダブルクリック禁止のクリックリスナーをセットできたり。
1button.setOnSingleClickListener {
2 // run
3}
「SharePreferences」の値を扱える
こんな感じに「SharePreferences」の値を扱えたり。
1val pref = Preferences(this)
2// 読み込み
3val isFirstLaunch:Boolean = pref.isFirstLaunch
4
5// 書き込み
6pref.isFirstLaunch = true
7pref.isFirstLaunch = false
※委譲プロパティについてはこちらが詳しいよ!
ActivityのRuntimePermissionのチェックが出来る
こんな感じに、Activity の RuntimePermission のチェックが出来ちゃったり。
※もちろん Fragment でも使えるよ!
1if (hasPermission(arrayListOf(
2 Manifest.permission.WRITE_EXTERNAL_STORAGE,
3 Manifest.permission.READ_EXTERNAL_STORAGE
4 ))) {
5 // run
6} else {
7 // request permission
8}
ActivityからFragmentをAddできる
こんな感じで、Activity から Fragment を Add できたり。
1addFragment(R.id.container, FirstFragment())
Android開発で、お決まりで使うものを詰め込んだ感じになってます!
どうやって入れるの?
下記の感じで入れてもらえたら動きます!(動くはずです!)
1allprojects {
2 repositories {
3 google()
4 jcenter()
5 maven { url 'https://jitpack.io' }
6 }
7}
1dependencies {
2 implementation "com.github.sasa-nori:common-ktx:$latestVersion"
3}
※2020/3/25時点の最新バージョンは 1.0.6です
implementation ではなく api で宣言
ライブラリの方で導入している、各種 ktxライブラリは implementation ではなく api で宣言しています。
ですので、そのまま同じバージョンのものが使えるようにしております。
ちなみに、Android 6.0 (minSdkVersion 23) となっております。
Android5 系に関しては、もう笹川の中ではサポート対象外です(笑)
国内外で使っていただけるように
そして、国内外の方にも使っていただけるように、なるべく日本縛りはない感じで作っています!
README なんかも、なるべく英語で書いてます!
日付を扱う際の Locale などは、JAPAN にせず getDefault() としています。
この辺は、今後もしかすると JAPAN 指定のメソッドを用意するかもしれません。
今後の運用は?
基本的に、私が思いついたら更新していく予定ですが、皆様の issue や PR お待ちしております!
是非、コミッターになっていただけると嬉しいです!
ブランチ運用
ブランチ運用については、 git flow でいく予定です!
develop ブランチに対しての feature ブランチから PR を作成すると、Danger が実行されるようになっています。
ですので、Lint エラーは、解決してからじゃないとマージはしないのでご注意ください。
今回作ったライブラリはこちら!
こちらの記事もオススメ!
2020.08.14スマホ技術 特集Android開発Android開発をJavaからKotlinへ変えていくためのお勉強DelegatedPropert...
2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...
その他記事
2019.09.13【第1回】Go言語(Golang)入門~環境構築編~第1回~Go言語(Golang)を習得したい!~笹川先生(株)ライトコードでモバイルアプリケーション開発をしている笹川...
ライトコードでは、エンジニアを積極採用中!
ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。
採用情報へ
新潟生まれ新潟育ち本業はモバイルアプリエンジニア。 日々、猫(犬)エンジニアとして活躍中!
おすすめ記事
immichを知ってほしい
2024.10.31