Your SlideShare is downloading. ×
20140214_devsumi_ameba_native
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20140214_devsumi_ameba_native

731

Published on

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
731
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
1
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Amebaの ネイティブ開発 株式会社サイバーエージェント 藤原 聖 #devsumiB
  • 2. 藤原 聖 fujiwara_satoru Android Developer facebook.com/satoru.fujiwara 東京大学 情報工学科 ベンチャー Android 2011年9月 中途入社
  • 3. 藤原 聖 fujiwara_satoru CyberAgent Inc. チーフネイティブエンジニア アメーバアプリ プラットフォーム&コミュニティ Androidお兄さん
  • 4. Android / iOS facebook.com/atom.cyberagent
  • 5. 開発合宿 ネイティブエンジニア以外のエ ンジニア向け
  • 6. Ameba ネイティブ
  • 7. 体制 ツール 取り組み
  • 8. 体制
  • 9. プラットフォーム&ブログ ゲーム (7 Apps+) コミュニティ (30 Apps+)
  • 10. プラットフォーム&ブログ Android iOS QA UUUUUUUU UU 10人 Ameba SDK 1App
  • 11. ゲーム Ameba Native Studio Unity / Cocos2d-x Unity plugin UUUUU UU 5人+ 1App
  • 12. ゲーム GP室 iOS Android UUUU UUUU 8人+ … 5Apps+
  • 13. コミュニティ ネイティブスタジオ Android iOS UUUUU UUUUU UUUUU
 UUUUU 15人+ 30Apps+ …
  • 14. プラットフォーム/ゲーム(Native Studio) UUUUU r o ro 1アプリ 複数アプリ UUUUUUUUU コミュニティ/ゲーム(GP室)
  • 15. 複数アプリ UUUUUUUUU コミュニティ/ゲーム(GP室)
  • 16. Android iOS UUUUU UUUUU UUUUU
 UUUUU …
  • 17. Android iOS UUUUU UUUUU UUUUU
 UUUUU …
  • 18. Android iOS UUUUU UUUUU UUUUU
 UUUUU …
  • 19. Android iOS UUUUU UUUUU UUUUU
 UUUUU …
  • 20. Android iOS UUUUU UUUUU UUUUU
 UUUUU …
  • 21. 運用アプリ開発のタスクの波 新規のスピードリリース
  • 22. 本日のStory
  • 23. 多くのネイティブアプリを 複数人で流動的に開発する時に、 どのようにして 「スピード」と「クオリティ」 を担保するか?
  • 24. ツール
  • 25. 複数人開発
  • 26. Pull Request
  • 27. git-flow r o ro GitHub-flow
  • 28. git-flow + PullRequest upstream fork master origin develop develop clone remote add local develop より詳しくは http://ameblo.jp/ca-1pixel/entry-11658373787.html
  • 29. git-flow + PullRequest リリース upstream master origin PullRequest feature/ develop Pull local develop feature/ より詳しくは http://ameblo.jp/ca-1pixel/entry-11658373787.html Push
  • 30. GitHub-flow + PullRequest リリース upstream PullRequest master Pull origin feature/ local master feature/ 厳密にはGitHub-flowではないです…「のようなもの」 Push
  • 31. git-flow d n dn a a GitHub-flow
  • 32. PullRequestでコードレビュー upstreamに不要なbranchがない
  • 33. スピード クオリティ
  • 34. ;
  • 35. Crashlytics BugSense Crittercism 今のところこれ
  • 36. スピード クオリティ
  • 37. Jenkins?
  • 38. 配布の自動化
  • 39. AppZone github.com/CyberAgent/AppZone
  • 40. レビューの自動化
  • 41. Pull Reqしました!
  • 42. 静的コード解析
  • 43. Lint CheckStyle FindBug PMD cpd
  • 44. 可視化&一元化
  • 45. アンケート
  • 46. Android Developer r o ro iOS Developer
  • 47. Sorry… Android only
  • 48. Eclipse r o ro Android Studio
  • 49. 環境切り替え(gradle) sourceSets {! main {! manifest.srcFile 'AndroidManifest.xml'! java.srcDirs = ['src/main/java']! resources.srcDirs = ['src/product']! res.srcDirs = ['res']! assets.srcDirs = ['assets']! }! develop {! resources.srcDirs = ['src/develop']! }! staging {! resources.srcDirs = ['src/staging']! }! product {! resources.srcDirs = ['src/product']! }! }
  • 50. jarの生成 android.libraryVariants.all { variant ->!     def name = variant.buildType.name!     if (name.equals(com.android.builder.BuilderConstants.DEBUG)) {!         return;!     }!     def task = project.tasks.create "jar${name.capitalize()}", Jar!     task.dependsOn variant.javaCompile!     task.from variant.javaCompile.destinationDir!     task.from android.sourceSets.main.resources!     artifacts.add('archives', task);! } 参考 http://stackoverflow.com/questions/19307341/android-library-gradle-release-jar
  • 51. deploy maven apply plugin: 'maven'! ! uploadArchives {!     repositories {!         mavenDeployer {!             repository url: "https://maven-server-url"!             pom.version = '1.0.0'!             pom.groupId = 'atom.commons'!             pom.artifactId = 'atom-commons-util'!         }!     }! }
  • 52. Android Studio
  • 53. but…
  • 54. Eclipse
  • 55. 0.4.2 (early access preview) Save Action ant
  • 56. Save Action auto format & clean up
  • 57. 環境切り替え(ant) <property name="source.dir" value="bin/buildsrc" />! ! <target name="product">! <property name="buildenv" value="product" />! <antcall target="dobuild"/>! </target>! ! <target name="staging">! <property name="buildenv" value="staging" />! <antcall target="dobuild"/>! </target>! ! <target name="develop">! <property name="buildenv" value="develop" />! <antcall target="dobuild"/>! <antcall target="dolint"/>! </target>! ! <target name="-pre-build">! <antcall target="clean"/>! <property name="buildenv" value="develop" />! <copy todir="${source.dir}">! <fileset dir="src/main/java"/>! <fileset dir="src/${buildenv}"/>! </copy>! </target>
  • 58. atom-bootstrap .settings custom_rules.xml
  • 59. 開発環境の統一
  • 60. デバッグ
  • 61. Sorry… Android only
  • 62. Smartphone Test Farm
  • 63. Smartphone Test Farm • ブラウザからリアルタイムでAndroid実 機デバッグ • ブラウザ/WebView/logcat/apk/ ScreenShot/etc • 一部オープンソース • github.com/CyberAgent/adbkit
  • 64. Pull Request で複数人開発 アプリのクラッシュを一元管理 AppZoneでアプリ配布 自動でコードレビュー&一元管理 auto format / clean up 様々な端末を同時にDebug
  • 65. 誰が作っても同じ様に
  • 66. 誰でも作れる
  • 67. 本日のStory
  • 68. 多くのネイティブアプリを 複数人で流動的に開発する時に、 どのようにして 「スピード」と「クオリティ」 を担保するか?
  • 69. one of the Answer
  • 70. 全部のアプリを同じ 様に作る
  • 71. 一人のスペシャリス トが全部作る様に
  • 72. 取り組み
  • 73. 検証指令塔 SMAq (テスト) CS セキュリティ診断
  • 74. K点チェック アプリリリース判定 アプリのクオリティをチェック
  • 75. イノテック会議
  • 76. 流動的な体制 SMAq K点チェック
  • 77. エンジニア主導 みんなを巻き込む
  • 78. 多くのネイティブアプリを 複数人で流動的に開発する時に、 どのようにして 「スピード」と「クオリティ」 を担保するか?
  • 79. 一人のスペシャリス トが全部作る?
  • 80. Action!
  • 81. みんなで協力できる 形を
  • 82. みんなで考える
  • 83. Thank you!
  • 84. Ask The Speaker

×