Slide 1

Slide 1 text

あるAndroidライブラリにPR 出したけど放置されてるので ライブラリ化した話 越智 宗洋 shibuya.apk #37 2019/09/27

Slide 2

Slide 2 text

自己紹介 ● 越智 宗洋 ● Twitter: @ochi_tw ● オフィスは勝どき ● Android/iOSエンジニア

Slide 3

Slide 3 text

目次 ● 経緯 ● PR出した ● ライブラリ公開 ● まとめ

Slide 4

Slide 4 text

経緯 担当していたニュースアプリでこんな話が出た... 上部のタブをループさせたいんだけど、できる?

Slide 5

Slide 5 text

検索したら https://teratail.com/questions/35856

Slide 6

Slide 6 text

nshmura/RecyclerTabLayout 最新コミット2年前じゃん... Support Library使ってる。AndroidX対応してない... 使えないなぁ... でも他にいい情報ないなぁ... https://github.com/nshmura/RecyclerTabLayout

Slide 7

Slide 7 text

複数の API バージョンをサポートするアプリを開発するときは、以前のバージョンの Android に新しい機能を提 供したり、同等の機能にスムーズに戻したりする標準的な方法が必要な場合があります。以前のバージョンの プラットフォームを処理するコードを構築する代わりに、これらのライブラリを利用してその互換性レイヤを提供 できます。さらに、Support Library には標準のフレームワーク API では利用できない便利なクラスや機能が追 加され、より多くのデバイスにまたがる開発やサポートが容易になっています。 元々はアプリ向けの単一バイナリ ライブラリであった Android Support Library が、アプリ開発用のライブラリ スイートに進化しました。現在、これらのライブラリの多くは、必須ではありませんがアプリ開発の一部として強く 推奨されています。 補足.Support Library https://developer.android.com/topic/libraries/support-library?hl=JA

Slide 8

Slide 8 text

https://developer.android.com/jetpack/androidx?hl=JA 補足.AndroidX AndroidX は Android チームが Jetpack 内でのライブラリの開発、テスト、パッケージ、バージョン管理、リリースに使用している オープンソース プロジェクトです。 AndroidX は元の Android Support Library を大幅に改良しています。Support Library と同様に、AndroidX も Android OS とは別 個にリリースされ、Android のリリース全体にわたって下位互換性を提供します。AndroidX は、同等の機能と新しいライブラリを提 供することで、完全に Support Library の代わりとなります。さらに AndroidX には以下のような特徴があります。 ・AndroidX のパッケージはすべて、文字列 androidx で始まる一貫した名前空間に属します。Support Library のパッケージは対応 する androidx.* パッケージにマッピングされました。以前のクラスとビルド アーティファクトから新しいものへのマッピングの一覧は、 パッケージのリファクタリングに関するページをご覧ください。 ・Support Library とは異なり、AndroidX のパッケージは個別に管理され、更新されます。androidx のパッケージはバージョン 1.0.0 から始まる厳格なセマンティック バージョニングを使用します。デベロッパーのプロジェクト内の AndroidX ライブラリを独立して更新 できます。 ・Support Library の新規の開発はすべて AndroidX ライブラリ内で行われます。これには元の Support Library のアーティファクト のメンテナンスや、新しい Jetpack コンポーネントの導入が含まれます。

Slide 9

Slide 9 text

じゃあ自分でやるか! Forkして自分のリポジトリを作った。 Migrate to AndroidX した。 問題なさそう。 PR出すか!! https://github.com/ochim/RecyclerTabLayout

Slide 10

Slide 10 text

PR出した https://github.com/nshmura/RecyclerTabLayout/pull/50

Slide 11

Slide 11 text

放置される 全然反応ない もともと放置リポジトリだしなぁ...

Slide 12

Slide 12 text

じゃあライブラリ化しちゃおう! ● Forkしたリポジトリをライブラリ化 ● bintray-releaseプラグインを使ってライブラリ公開 https://qiita.com/gupuru/items/aa81f007d306fc6c4a2c

Slide 13

Slide 13 text

詰まった ● ライブラリをBintrayにアップロー ドしようとしたらエラーになった。 エラーメッセージ 「message:Repo 'maven' was not found」 ● 手動でmavenという名前で Repositoryを作成したら解決し た。 https://github.com/bintray/gradle-bintray-plugin/issues/143

Slide 14

Slide 14 text

Bintrayにアップロードした ● 後はjCenterに登録するだけ

Slide 15

Slide 15 text

ライブラリ公開した https://github.com/ochim/RecyclerTabLayout

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

● 使いたいライブラリがあったが、AndroidX対応をしていなかった。 ● ForkしたリポジトリでMigrate to AndroidXした。 ● PRを出したが、全く反応が無かった。 ● Forkしたリポジトリでライブラリ公開した。 まとめ

Slide 18

Slide 18 text

● Forkしたリポジトリでのcommitはcontributionsにカウントされません。 この活動で 草は生えてません。 残念 https://help.github.com/en/articles/why-are-my-contributions-not-showing-up-on-my-profile

Slide 19

Slide 19 text

ありがとうございました