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

The front-line of iOS app development at Hatena

The front-line of iOS app development at Hatena

Presented at “【DeployGate x はてな】スマートフォンアプリ開発最前線”, 13 April 2015.

cockscomb

April 14, 2015
Tweet

More Decks by cockscomb

Other Decks in Programming

Transcript

  1. Swift͍͍ͱ͜Ζ • දݱྗ͕๛͔ • ܕ, δΣωϦΫε, Ϋϩʔδϟ, ߴ֊ؔ਺ • ؆ܿ

    • ܕਪ࿦, Ϋϩʔδϟ • SwiftͷݴޠػೳΛ׆͔ͤΔઃܭ͕ඞཁ
  2. –James Lewis and Martin Fowler, Microservices “In short, the microservice

    architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.”
  3. Why automated? • ࠶ݱੑͷ୲อ • ͍ͭͰ΋ςετ͕௨ΓϏϧυͰ͖Δ͜ͱΛอূ • ଵ͚͍ͨ • ख࡞ۀͰ͕Μ͹ΔͱർΕΔ

    • 3.5/4.0/4.7/5.5/9.7 inchͷσΟεϓϨΠͰ
 5छྨͣͭͷεΫϦʔϯγϣοτࡱΔͷ͸ർΕΔ
  4. XCJobs require 'XCJobs'
 
 XCJobs::Test.new do |t|
 t.workspace = 'HatenaBlog'


    t.scheme = 'HatenaBlogTests'
 t.configuration = 'Debug'
 t.add_destination('name=iPhone 6,OS=8.2')
 t.formatter = 'xcpretty -c -r junit'
 end

  5. XCJobs #!/bin/sh -e
 
 bundle install --path vendor/bundle
 bundle exec

    pod install
 bundle exec rake build:archive
 
 bundle exec rake build:export
 bundle exec rake distribute:deploygate
  6. snapshot devices([
 "iPhone 6",
 "iPhone 6 Plus",
 "iPhone 5",
 "iPhone

    4s",
 "iPad Air",
 ])
 languages([ 'ja' ])
 
 screenshots_path "./screenshots"
 js_file './snapshot/snapshot.js'
 scheme 'HatenaBlog'
 project_path './HatenaBlog.xcworkspace'
  7. snapshot #import "SnapshotHelper.js"
 var target = UIATarget.localTarget();
 var app =

    target.frontMostApp();
 var window = app.mainWindow();
 target.setDeviceOrientation(
 UIA_DEVICE_ORIENTATION_PORTRAIT);
 
 target.delay(1)
 captureLocalizedScreenshot("1-Dashboard")
 
 window.tableViews()[0].cells()[0].tap();
 target.delay(1)
 captureLocalizedScreenshot("2-EntryBrowser")