Slide 1

Slide 1 text

Copyright © 2018 eureka, Inc. All rights reserved. 学生エンジニアが解く大規模アプリ eureka Meetup #10 -Pairs Android開発の裏側-

Slide 2

Slide 2 text

Copyright © 2018 eureka, Inc. All rights reserved. Tomosugi Tasaka 1995年3月7日生まれ 明治大学大学院 修士2年 現在はeurekaのインターン生と学生の両刀です 好きなお酒はハイボールと梅酒です 自己紹介

Slide 3

Slide 3 text

Copyright © 2018 eureka, Inc. All rights reserved. 2017年 9月 eurekaのサマーインターンに参加 2017年10月 Pairs Global Androidチームに長期インターンで参加 2018年 4月 Pairs Japan Androidチームに異動 自己紹介

Slide 4

Slide 4 text

Copyright © 2018 eureka, Inc. All rights reserved. 学生エンジニアが大規模アプリ開発に放り込まれた その時に感じた自分への課題 どのように足掻いて解決していったか 話したいこと

Slide 5

Slide 5 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 大規模アプリを目の前に読み解く時に工夫したこと ○ 未経験な状態でどのように読み解いたか? -Pairs Global- ○ ある程度のスキル、仕様理解がある状態でどのように読み解いたか? -Pairs Japan- ● おわりに アジェンダ

Slide 6

Slide 6 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 大規模アプリを目の前に読み解く時に工夫したこと ○ 未経験な状態でどのように読み解いたか? -Pairs Global- ○ ある程度のスキル、仕様理解がある状態でどのように読み解いたか? -Pairs Japan- ● おわりに アジェンダ

Slide 7

Slide 7 text

Copyright © 2018 eureka, Inc. All rights reserved. 未経験な状態でどのように読み解いたか -仕様編-

Slide 8

Slide 8 text

Copyright © 2018 eureka, Inc. All rights reserved. ● Pairsにはどのような機能があるのか? ○ いいね ○ あしあと ○ メッセージ ● 「いいね」機能で何ができるのか? ○ 相手の自分が「いいね」したことを通知する ○ お互い「いいね」するとマッチング状態になる 未経験者が大規模アプリを読み解く

Slide 9

Slide 9 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 問題 ○ 人間が仕様書 ● 解決方法 ○ 人に聞く ○ 機能追加や修正ごとに仕様を理解していく 未経験者が大規模アプリを読み解く

Slide 10

Slide 10 text

Copyright © 2018 eureka, Inc. All rights reserved. 未経験な状態でどのように読み解いたか -技術編-

Slide 11

Slide 11 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 初仕事 ○ コードリーディング&画面の一部修正 ○ 海藤さん「あしあと画面のヘッダーをスクロールすると隠れるようにして」 未経験者が大規模アプリを読み解く

Slide 12

Slide 12 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 問題 ○ あしあと画面のソースコード(Activity)が見つからない、、、 ○ ファイルの量が多くて、当てずっぽうで探せない ○ どの画面がどのActivityと対応しているのかわからない ○ そもそも台湾語で読めない(台湾・韓国版Pairsなので) 未経験者が大規模アプリを読み解く

Slide 13

Slide 13 text

Copyright © 2018 eureka, Inc. All rights reserved. ● ヒント ○ 海藤さん「今表示されているのは○○Activityだよ」 ○ 海藤さん「cmd押しながらクリックするとジャンプできるよ」 未経験者が大規模アプリを読み解く

Slide 14

Slide 14 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 統合開発環境(Android Studio)の旨味を利用する ○ このクラスはどこから呼んでいるのか? ○ この関数はどこから呼ばれているのか? 未経験者が大規模アプリを読み解く

Slide 15

Slide 15 text

Copyright © 2018 eureka, Inc. All rights reserved. ● データの保持方法 ○ Fluxアーキテクチャ ● Fluxアーキテクチャを理解する上で ○ 「いいね」状態をどうやって画面間で同期させているのか? ○ どのようにデータが流れているのか? 未経験者が大規模アプリを読み解く

Slide 16

Slide 16 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 大規模アプリを目の前に読み解く時に工夫したこと ○ 未経験な状態でどのように読み解いたか? -Pairs Global- ○ ある程度のスキル、仕様理解がある状態でどのように読み解いたか? -Pairs Japan- ● おわりに アジェンダ

Slide 17

Slide 17 text

Copyright © 2018 eureka, Inc. All rights reserved. ある程度経験した状態で読み解く -仕様編-

Slide 18

Slide 18 text

Copyright © 2018 eureka, Inc. All rights reserved. ● Pairs GlobalからJapanに異動 ● Pairs Japanの仕様を理解する ある程度の経験者が大規模アプリを読み解く

Slide 19

Slide 19 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 法律 ○ 数え年と満年齢 ● 行動原理 ○ ネガティブとポジティブ ある程度の経験者が大規模アプリを読み解く

Slide 20

Slide 20 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 規模の大きさ ○ 関わっている人数の多さ ○ 細かなアニメーション ある程度の経験者が大規模アプリを読み解く

Slide 21

Slide 21 text

Copyright © 2018 eureka, Inc. All rights reserved. ● Pairs Japanでの初仕事 ○ 決済画面のリニューアル ○ モブワークの初始動 ある程度の経験者が大規模アプリを読み解く

Slide 22

Slide 22 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 問題 ○ 人間が仕様書 ● 解決方法 ○ 人に聞く ○ 機能修正・追加ごとに仕様を確認 ● 感じたこと ○ 機能修正・追加ごとに仕様を文章化するべき? ある程度の経験者が大規模アプリを読み解く

Slide 23

Slide 23 text

Copyright © 2018 eureka, Inc. All rights reserved. ある程度経験した状態で読み解く -技術編-

Slide 24

Slide 24 text

Copyright © 2018 eureka, Inc. All rights reserved. ● どの関数がどのような計算をしているのか? ● 処理の順番は? ● どの画面がどのActivityと対応しているのか? ある程度の経験者が大規模アプリを読み解く

Slide 25

Slide 25 text

Copyright © 2018 eureka, Inc. All rights reserved. ● adbコマンド ● デバッグ機能 ● 通信内容の監視 ある程度の経験者が大規模アプリを読み解く

Slide 26

Slide 26 text

Copyright © 2018 eureka, Inc. All rights reserved. ● adbコマンド ○ 通知 ○ 現在表示されているActivity ○ 文字列の入力 ● デバッグ機能 ● 通信内容の監視 ある程度の経験者が大規模アプリを読み解く

Slide 27

Slide 27 text

Copyright © 2018 eureka, Inc. All rights reserved. ● adbコマンド ● デバッグ機能 ○ ブレイクポイント ○ 変数の監視 ● 通信内容の監視

Slide 28

Slide 28 text

Copyright © 2018 eureka, Inc. All rights reserved. ● adbコマンド ● デバッグ機能 ● 通信内容の監視 ○ stetho ○ chrome://inspect/#devices ある程度の経験者が大規模アプリを読み解く

Slide 29

Slide 29 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 大規模アプリを目の前に読み解く時に工夫したこと ○ 未経験な状態でどのように読み解いたか? -Pairs Global- ○ ある程度のスキル、仕様理解がある状態でどのように読み解いたか? -Pairs Japan- ● おわりに アジェンダ

Slide 30

Slide 30 text

Copyright © 2018 eureka, Inc. All rights reserved. ● 大規模アプリ開発の未経験者→ある程度の経験者 ○ 仕様については恐れずに聞く ○ Android Studioの機能を使ってコードを追う ● 密度が高い時間 ○ 技術面において ○ チームとのコミュニケーション おわりに