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.

2019 01 16_bonfire_android

617 views

Published on

Presented by Riku Maehara

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

2019 01 16_bonfire_android

  1. 1. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. の Androidアプリ開発
  2. 2. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. 前 原 理 来 M a e h a r a R i k u PayPay株式会社 | Android developer 法政大学情報科学部卒業 2019年4月ヤフー新卒入社 2019年7月PayPayに出向
  3. 3. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. ・ PayPayの開発スタイル ・ 開発上でぶつかった困難 ・ 失敗からの解決策 おはなしすること
  4. 4. Copyright (C) 2020 PayPay Corporation. All Rights Reserved.
  5. 5. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. PayPayは多くのユーザーに使われているアプリ
  6. 6. Copyright (C) 2020 PayPay Corporation. All Rights Reserved.
  7. 7. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. • すべき要件が概ねマネジメント層で決まっている • スピーディーなデザインが求められる • プロダクト責任者がデザイン責任者 PayPayの開発スタイル • スピード重視のアジャイル型開発 • 週1のスプリントで毎週リリース • 昨年はアプリをAndroid,iOS合わせて120回以上リリース
  8. 8. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. PayPayの開発環境
  9. 9. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. PayPayの開発環境 • 英語も日本語も飛び交っています • Androidチームも多国籍 • 日本、インド、タイ、ポーランド、中国 ..etc 出身は様々 • 英会話、日本語レッスンの導入 → グローバルな環境
  10. 10. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. 開発サイクル 月 火 水 木 金 次週リリース 開発 開発&QA
  11. 11. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. 開発サイクルを維持するために • 仕様等の調整事はなるべく早く • ブランチ戦略の見直し • コードが不安なところは予め方針を相談してから • QA期間は素早くBugFix
  12. 12. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. ブランチ戦略 • masterとrelease, hotfixブランチのみ • 火曜日の夜に自動でmasterからreleaseブランチが切られる • 一日2回自動でreleaseからmasterにSyncするPRが作られる • 2バージョン以上先にリリースされる機能は基本的に本番に影響がない範囲でmasterに入れていく
  13. 13. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. masterにマージできないもの • ライブラリのバージョン変更はマージできず、長い間別ブランチにいた • MotionLayoutを使うために ContraintLayout2.0.0 beta02で開発していた • バグが多くの画面のレイアウトが崩れたり、特定OS versionでは表示できなかった りが直前になって発覚
  14. 14. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. マージできないブランチにある問題を早期発見 • アプリのAutomation Testチームと連携を取り、masterとreleaseブラン チ以外でもテストしてもらう
  15. 15. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. • すべき要件が概ねマネジメント層で決まっている • スピーディーなデザインが求められる • プロダクト責任者がデザイン責任者 PayPayAndroidのアーキテクチャ • 98% Kotlin • MVVM • Single Activity • Fragmentは使っていない
  16. 16. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. lyft/Scoop 🍦
  17. 17. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. Scoopとは • Fragmentの大規模な使用には高いコストがかかる • ViewBaseでシンプルなライフサイクルの実現 • onAttachとonDetachのみ • Screen, ViewController, Router, UIContainer
  18. 18. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. Scoopの登場人物 • Router • 画面スタック、ナビゲーションを管理 • UIContainer • UIContainerの中で画面遷移を行う Fragmentを乗せるLayoutみたいなイメージ • Screen • 1つのViewの単位。routerによってbackstackに積まれても破棄されない • ViewController • Screenの上に乗っている。AttachとDetachがある。毎回生成と破棄される
  19. 19. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. Routerによるナビゲーション 出典: https://eng.lyft.com/building-single-activity-apps-using-scoop-763d4271b41
  20. 20. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. チャレンジングな職場
  21. 21. Copyright (C) 2020 PayPay Corporation. All Rights Reserved. ぜひ、刺激的な職場で一緒に働きましょう!

×