• トップ
  • ブログ一覧
  • Androidのライブラリを作って公開してみた
  • Androidのライブラリを作って公開してみた

    笹川(エンジニア)笹川(エンジニア)
    2020.03.24

    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

    ※委譲プロパティについてはこちらが詳しいよ!

    featureImg2019.05.15【Kotlin】DelegatedProperties(委譲プロパティ) を使って Android SharedPreferences を使いやすくしてみたDelegatedProperties(委譲プロパティ)をご紹介  江幡さん(株)ライトコードの江幡(えばた...

    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 エラーは、解決してからじゃないとマージはしないのでご注意ください

    今回作ったライブラリはこちら

    こちらの記事もオススメ!

    featureImg2020.08.14スマホ技術 特集Android開発Android開発をJavaからKotlinへ変えていくためのお勉強DelegatedPropert...

    featureImg2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...

    その他記事

    featureImg2019.09.13【第1回】Go言語(Golang)入門~環境構築編~第1回~Go言語(Golang)を習得したい!~笹川先生(株)ライトコードでモバイルアプリケーション開発をしている笹川...

    featureImg2019.06.18【CI/CD】BitriseでDeployGateをAndroidでやってみた第1弾~はじめに~笹川先生(株)ライトコードの笹川(ささがわ)です!弊社ブログの中で、あまりCIについて触れているもの...

    featureImg2019.09.05Bitrise(ビットライズ) User Group Meetup #2 に参加してきました!はじめに笹川先生(株)ライトコードの笹川(ささがわ)です!今回は、Bitrise(ビットライズ)さん主催のUser G...

    笹川(エンジニア)

    笹川(エンジニア)

    おすすめ記事