StickyListHeaders風のライブラリを自作する-5
StickyListHeaders風のライブラリを自作する-4 - 日々是好日の続き。
ライブラリがとりあえず出せそうなレベルまで来たので、AAR ファイルの出力をしてみた。
……ら、めっちゃハマったのでメモ。
続きを読むStickyListHeaders風のライブラリを自作する-3
StickyListHeaders風のライブラリを自作する-2 - 日々是好日の続き。
PinningListAdapter
について考えてみる。
リポジトリ作りました。 github.com
続きを読むStickyListHeaders風のライブラリを自作する-2
StickyListHeaders風のライブラリを自作する-1 - 日々是好日の続き。
ItemDecoration でがんばって Sticky な動作を実現してみました。
次は、ごく簡単な機能を提供する記事を書きたい。
前回こんなこと言ってましたが、結局実装までやっちゃいましたね。←
続きを読む
StickyListHeaders風のライブラリを自作する-1
StickyListHeadersが数年前からメンテ停止しているので、RecyclerView を拡張してそれっぽい View のライブラリを作ってみようという闇の計画。
現時点で、計画が成就するのかマジでわからない。 そして誰得でもある。
Android ライブラリとは
ソースコードファイルもあるし res
もあるし、パッと見本当に一緒です。
個人的に、「そもそもモジュールってなんだ全然わからん」状態だったので、そこから調べてみた。 いかに基礎が分かっていないかバレてしまいますねヾ(:3ノシヾ)ノシ
モジュールとは
モジュールとはソースファイルとビルド設定のコレクションであり、モジュールによって機能ごとにプロジェクトを分割できます。プロジェクトには 1 つまたは多数のモジュールを含めることができ、モジュールは別のモジュールを依存関係として使用できます。各モジュールは個別にビルド、テスト、デバッグを実行できます。
ある機能をどこからでも利用するために分割されたソースコードの塊、といった感じか。app
もモジュールなんですよね。
モジュールを作って参照してみる
最初から「よっしゃオリジナルな RecyclerView 作ったるで!!」って意気込んだら速攻で挫折したので、おとなしく RecyclerView をラップしただけのモジュールを作って app
モジュールから参照してみました。
モジュールの生成
File → New → New Module...
の順にクリックAndroid Library
を選択してNext
をクリック
ライブラリの名称とかの入力が出てくるので、次のとおりに入力。
item | 入力値 |
---|---|
Apprication/Library Name | MyRecyclerView |
Module Name | myrecyclerview |
Package Name | work.kcs_labo.myrecyclerview |
すると、左側の Project に myrecyclerview
というモジュールが生成されると思います。こんな感じ。
なお、今後のライブラリ公開を考えるならば、入力値はこちらの Qiita を参考にしてください。
MyRecyclerView を作る
myrecyclerview
に app
と同じくソースコードファイルを入れるパッケージがあるので、Kotlin ファイル作って次のコードを記述する。
package work.kcs_labo.myrecyclerview import android.content.Context import android.util.AttributeSet import androidx.recyclerview.widget.RecyclerView class MyRecyclerView: RecyclerView { constructor(context: Context): super(context) constructor(context: Context, attrs: AttributeSet): super(context, attrs) constructor(context: Context, attrs: AttributeSet, defStyle: Int): super(context, attrs, defStyle) }
RecyclerView
を継承した MyRecyclerView
を作っただけ。
さっそくこれを app
モジュールに依存関係指定して import
してみる。
app から参照してみる
build.gradle
に次のとおり依存関係を指定。
dependencies { implementation project(':myrecyclerview') }
このへんの Gradle の記述はてくぶさんの記事を参照。
んで、MainActivity
なんかで次のとおり記述すると参照できていることがわかる。
import work.kcs_labo.myrecyclerview.MyRecyclerView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val hoge = MyRecyclerView(this) } }
まとめ
New Module...
でモジュール作って Gradle で参照してみましょう!というだけの記事でした(ぇ
RecyclerView の実装はやったことあるけど、ライブラリとして機能を提供するのってどうやるんだ……?????
って小一時間以上悩んでもうつらみしかない。
次は、ごく簡単な機能を提供する記事を書きたい。
Sushi Buffet を支える技術 ver2.0.0
VS Code でいつでも回転寿司を眺められる拡張機能を作りました。 sushi-buffetを支える技術 - 日々是好日 のメジャーアップデートです。
マーケットプレイスはこちら。 marketplace.visualstudio.com
ぎとはぶ github.com
- どうやって回転させているの?
- 追加する構文
- transform.rotate は使えないの?
- workbench.html に div タグ仕込めばいいのでは?
- 結局なんなのこの機能