Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ライブコーディング・Androidのライブラリを作ってみよう

5,722 views

Published on

DroidKaigi2016 ライブコーディング・Androidのライブラリを作ってみようの発表資料です

Published in: Technology
  • Be the first to comment

ライブコーディング・Androidのライブラリを作ってみよう

  1. 1. ライブコーディング Androidのライブラリを作ってみ よう GMO Pepabo, Inc. Masataka Kono 2016-2-19 DroidKaigi 2016
  2. 2. 自己紹介 ● GMOペパボで働いています ● minneのAndroidエンジニア ● 仕事でAndroidは去年の10月から ● それまではPHPer ● Twitterは @mapyo です ● 社内のみんなからは「ぼいらー」
  3. 3. 今回発表するにあたって ライブラリを作ってみたい!という人は多そう。 ● でも何作ったらいいのか。。。(´・ω・`) ● そもそもどうやって作るの??
  4. 4. 今回発表するにあたって 自分が作ってるものの中から、一部を抽象化して ライブラリを作ればいいのでは?? もっと気軽にライブラリを公開していくようになれば 楽しそう!!
  5. 5. 今回のライブコーディングでは、 この流れを意識して進めていきます!!1 ※ただし、ライブラリ化出来るようにリファクタリング は頑張ってください!!
  6. 6. 今回のライブコーディングの流れ 1. 簡単なサンプルアプリの用意 2. サンプルアプリからライブラリ化したいものを切 り出す 3. ライブラリ用のプロジェクトを作成 4. ライブラリを公開する 5. サンプルアプリからそのライブラリを使う
  7. 7. ライブコーディング初めてです!! ● スライドは事前に公開していると思いますので、 見にくい場合はそちらをご覧ください ● 万が一PCやネットワークの不調等あった場合 はスライドを見ながら説明していきます。。。
  8. 8. 1.簡単なサンプルアプリの用意 画像をタップしたら全画面で表示されるもの
  9. 9. 1.簡単なサンプルアプリの用意 https://github. com/mapyo/DroidKaigi2016Sample こちらに用意しています。 これを作っていたら時間がオーバーしそうなので、 事前に用意しました。。。
  10. 10. 1.簡単なサンプルアプリの用意 ● サンプルアプリの説明! ● MainActivityとDetailedImageActivityの2つ ● 全画面表示するDetailedImageActivityをライブ ラリ化していきます
  11. 11. 2.サンプルアプリからライブラリを切り出 す 全画面表示させる部分をライブラリ化します! ● New ModuleでAndroid Libraryを作成 ● 作成したmoduleにライブラリ化したいもの全て 移動 ● Module化した部分を削除 ソースはこちらです https://github.com/mapyo/DroidKaigi2016Sample/tree/create-module
  12. 12. 2.サンプルアプリからライブラリを切り出 す ● New ModuleでAndroid Libraryを選択
  13. 13. 2.サンプルアプリからライブラリを切り出 す ● New ModuleでAndroid Libraryを選択
  14. 14. 2.サンプルアプリからライブラリを切り出 す ライブラリ化した時に つけたい名前、パッ ケージ名をつけてお く。
  15. 15. 2.サンプルアプリからライブラリを切り出 す ● 新しく作ったModuleにライブラリ化したいソース を移動する ● 移動元のソースは消しておく ● 動作確認しとく ○ 依存関係を修正してあげる必要があるので、option + enter
  16. 16. 3.ライブラリ公開用のプロジェクト作成 1.新しくプロジェクトを作成 2.先ほど作ったModuleをImportする 3.サンプルを何か作る ○ 公開されているライブラリはサンプルアプリがついてる 事が多い 4.appをsampleにrenameする ○ フォルダ名がだいたいsample
  17. 17. 3.ライブラリ公開用のプロジェクト作成 先ほど作ったModuleをImportする →先ほど作ったModuleのPathをコピー
  18. 18. 3.ライブラリ公開用のプロジェクト作成 先ほど作ったModuleをImportする →新しく作ったプロジェクトでimport
  19. 19. 4.ライブラリを公開する ● Githubで公開 ● BintrayにアップしてjCenterに登録
  20. 20. 4.ライブラリを公開する 今回はBintrayにアップしてjCenterに登録します
  21. 21. 4.ライブラリを公開する 1.Bintrayにアカウント登録 https://bintray.com 2.bintray-releaseを使ってアップする https://github.com/novoda/bintray-release 3.jCenterに登録する
  22. 22. 4.ライブラリを公開する Bintrayにアカウント登録する https://bintray.com ● 右上のsign inから登録してください ● ソーシャル連携とかあった
  23. 23. 4.ライブラリを公開する bintray-releaseを使って登録する https://github.com/novoda/bintray-release projectのbuild.gradleに以下を追加 classpath 'com.novoda:bintray-release:0.3.4'
  24. 24. 4.ライブラリを公開する ライブラリのgradleに以下を追加 apply plugin: 'com.novoda.bintray-release' publish { userOrg = 'mapyo' groupId = 'com.mapyo.detailedimage' artifactId = 'detailedimage' publishVersion = '0.0.1-beta' desc = 'detailed image' website = 'https://github. com/mapyo/detailedimage' }
  25. 25. 4.ライブラリを公開する bintrayUploadのタスクを実行してアップする ./gradlew clean build bintrayUpload - PbintrayUser=BINTRAY_USERNAME - PbintrayKey=BINTRAY_KEY -PdryRun=false ↑1行です ※BINTRAY_USERNAMEと BINTRAY_USERNAMEは変更してください ※READMEに詳しくは書いてあります
  26. 26. 4.ライブラリを公開する アップロードした直後のBintrayのトップページ
  27. 27. 4.ライブラリを公開する jCenterに登録する Add to jCenterをクリックして登録 しかし、直ぐには反映されません。。。(汗)
  28. 28. 5. サンプルアプリから公開したライブラリ を使う build.gradleに以下を追加 repositories { maven { url "http://dl.bintray. com/mapyo/maven" } } ※jCenterにすぐには登録されていないため
  29. 29. 5. サンプルアプリから公開したライブラリ を使う build.gradleに以下を追加 compile 'com.mapyo.detailedimage:detailedimage: 0.0.1-beta' ※jCenterに登録が終わっていればこれのみでOK
  30. 30. 5. サンプルアプリから公開したライブラリ を使う ● 最初に作成したmoduleを削除する ● 動作確認
  31. 31. おそらく、上手く動いているはず!!! ソースコードはこちらにアップしています https://github. com/mapyo/DroidKaigi2016Sample/tree/use- liblary
  32. 32. 手順の流れまとめ 1. 自分の作っているアプリからライブラリ化出来そ うな部分を別モジュールに移動する 2. ライブラリとして公開するためのプロジェクト作 成 3. ライブラリとして公開 4. 自分の作っているアプリでライブラリを参照し、 モジュール化した部分を消す
  33. 33. 最後に ● ライブラリとして公開するのは1度やれば意外と 簡単だと思います。 ● みなさんも作っているアプリの処理の一部をラ イブラリとして公開していきましょう!!1 ● ライセンスとかGithubにアップするところもちゃ んとやりましょう。 ● ライブコーディング始めてでいろいろと手間取っ たと思いますがすみません。
  34. 34. 参考にさせていただいたページ BintrayにAndroidのライブラリをアップする http://sys1yagi.hatenablog. com/entry/2015/02/06/002823 Android のライブラリの作りかたと Bintray にアッ プロードするまでの手順 http://rakuishi.com/archives/release-android- library-to-bintray/
  35. 35. 参考にさせていただいたページ Androidオープンソースライブラリの作り方 https://speakerdeck. com/takahirom/androidopunsosuraiburarifalsez uo-rifang Android のライブラリづくりとライセンスについて http://techlife.cookpad. com/entry/2015/06/15/184248
  36. 36. 以上です! どうもありがとうございました!!
  37. 37. 余談 ちなみにサンプルアプリに使った画像は最近仲間 内で作ったWebサービスのキャラクターです https://9is.xyz
  38. 38. その他のメモ
  39. 39. BintrayとjCenterとは一体!? JFrog社が運営している、様々なソフトウェアの配 布を簡単にできるサービス
  40. 40. BintrayとjCenterとは一体!? JCenter is the place to find and share popular Apache Maven packages for use by Maven, Gradle, Ivy, SBT, etc. ref. https://bintray.com/bintray/jcenter

×