Mobile App Development for Perl Mongers

Mobile App Development for Perl Mongers

A talk about Client-Fontend and Client-Backend on YAPC::Asia 2014

6139fd48daa26e786794598c4a6b546a?s=128

ninjinkun

August 30, 2014
Tweet

Transcript

  1. 11.
  2. 20.

    .77. .PEFM7JFX7JFX.PEFM w 7JFX.PEFM w IBTTUBUFBOEMPHJDSFMBUFEUPWJFX w 1PQVMBSJO+4 "OHVMBS 7VF

    ,OPDLPVUʜ  w 3FBDUJWF$PDPB "OESPJE#JOEJOH w "HHSFHBUFTUBUFTUPWJFXNPEFM
  3. 22.

    3FBDUJWF1SPHSBNNJOH w 1SPHSBNNJOHXJUIBTZODISPOPVTEBUBTUSFBN w 3FBDUJWF$PDPB 3Y+BWB w 4VJUBCMFGPSXFCTFSWJDFDMJFOUBQQT*UIJOL w #VUʜIBSEUPMFBSO

    w 5IFJOUSPEVDUJPOUP3FBDUJWF1SPHSBNNJOHZPVWFCFFO NJTTJOH w ʲ຋༁ʳ͋ͳ͕ͨٻΊ͍ͯͨϦΞΫςΟϒϓϩάϥϛϯάೖ໳ IUUQTHJTUHJUIVCDPNTUBMU[FFCDBCDG IUUQOJOKJOLVOIBUFOBCMPHDPNFOUSZJOUSPSYKB
  4. 33.

    @__gfx__ • A client-backend engineer • Working on libraries, environments,

    and CI on both Android and iOS apps • As a CPAN author: Data::Validator, Text::Xslate • Loving Android Studio and AppCode
  5. 34.
  6. 35.
  7. 36.

    The number of monthly users 0M 3.6M 7.2M 10.8M 14.4M

    18M Jul Oct Jan Apr Jul Oct Jan Apr PC Smartpohone browsers Smartpohone apps Feature phones Others 44.04 million ʢAs of April 2014ʣ
  8. 40.

    Lots of problems • Communication cost: • service teams <~>

    mobile app team • Different release cycle: • web: 10/day • app: 2/month • The will of installations • Each user sees a random version of apps • Continuous integration is really difficult
  9. 41.

    How our mobile teams were • Cookpad started as a

    web service • Cookpad mobile apps had followed the web • Service teams were tend to order the new features to the mobile app team (web-first)
  10. 45.

    1SFNJVN4FSWJDF 5FBN 0UIFS 5FBNT )BQQZ"VUIPS 5FBN 'FBUVSF 3FRVFTU 'FBUVSF Entrusted

    Development 'FBUVSF 3FRVFTU 'FBUVSF 3FRVFTU .PCJMF'JSTU 5FBN
  11. 47.

    1SFNJVN4FSWJDF 5FBN 0UIFS 5FBNT )BQQZ"VUIPS 5FBN .PCJMF'JSTU 5FBN )FMQ There

    are 20+ engineers on mobile applications 'FBUVSF 'FBUVSF 'FBUVSF 'FBUVSF 3FMFBTF .BOBHFNFOU Service Oriented Development
  12. 50.

    Web and Mobile Apps • Cookpad has a successful workflow:

    continuous delivery • Mobile app development should be successful with the same way!
  13. 51.
  14. 53.

    Differences in Release Cycle • Web: • continuous delivery •

    easily rollbacks code on problems • App: • frequent release makes users irritated • no rollbacks; all the versions remain in the world
  15. 55.

    Branching Model • Web: github-flow • Keeps the master branch

    deployable • App: git-flow • Makes a release branch on code freeze
  16. 56.

    Pull-Request Development • All the changes are merged via pull

    requests • Do not commit changes to master directly • All the pull requests should be reviewed
  17. 61.

    Release Engineering Tasks • Kicks the Jenkins job for a

    release package • Builds it, lints it, tests it, makes a tag • Uploads the package to Google Play / AppStore • Writes recent changes • Publishes it (in iOS: after Apple reviewing)
  18. 63.

    Release Engineering as Code • External repositories that build app

    projects • Android Publisher API (Google Play Developer API) • No API on AppStore / iTunes Connect yet • Monitoring - not yet, but will try
  19. 65.

    We are hiring ;) • There are a lot of

    good problems in Cookpad!
  20. 66.

    Free Talks: YAPC.fm • How to test mobile apps? •

    How about IDE / programming languages? • What to learn from the Perl community?