Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mobile App Development for Perl Mongers

Mobile App Development for Perl Mongers

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

ninjinkun

August 30, 2014
Tweet

More Decks by ninjinkun

Other Decks in Programming

Transcript

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

    ,OPDLPVUʜ  w 3FBDUJWF$PDPB "OESPJE#JOEJOH w "HHSFHBUFTUBUFTUPWJFXNPEFM
  2. 3FBDUJWF1SPHSBNNJOH w 1SPHSBNNJOHXJUIBTZODISPOPVTEBUBTUSFBN w 3FBDUJWF$PDPB 3Y+BWB w 4VJUBCMFGPSXFCTFSWJDFDMJFOUBQQT*UIJOL w #VUʜIBSEUPMFBSO

    w 5IFJOUSPEVDUJPOUP3FBDUJWF1SPHSBNNJOHZPVWFCFFO NJTTJOH w ʲ຋༁ʳ͋ͳ͕ͨٻΊ͍ͯͨϦΞΫςΟϒϓϩάϥϛϯάೖ໳ IUUQTHJTUHJUIVCDPNTUBMU[FFCDBCDG IUUQOJOKJOLVOIBUFOBCMPHDPNFOUSZJOUSPSYKB
  3. @__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
  4. 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ʣ
  5. 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
  6. 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)
  7. 1SFNJVN4FSWJDF 5FBN 0UIFS 5FBNT )BQQZ"VUIPS 5FBN 'FBUVSF 3FRVFTU 'FBUVSF Entrusted

    Development 'FBUVSF 3FRVFTU 'FBUVSF 3FRVFTU .PCJMF'JSTU 5FBN
  8. 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
  9. Web and Mobile Apps • Cookpad has a successful workflow:

    continuous delivery • Mobile app development should be successful with the same way!
  10. 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
  11. Branching Model • Web: github-flow • Keeps the master branch

    deployable • App: git-flow • Makes a release branch on code freeze
  12. 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
  13. 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)
  14. 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
  15. We are hiring ;) • There are a lot of

    good problems in Cookpad!
  16. Free Talks: YAPC.fm • How to test mobile apps? •

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