Upload
yoshinori-kawasaki
View
451
Download
0
Embed Size (px)
Citation preview
Wantedlyを支えてくれる
スーパーエンジニア募集中! https://www.wantedly.com/projects/6578
川崎 禎紀 (かわさき よしのり) twitter: @kawasy
GitHub: @luvtechno
2012年4月よりウォンテッドリー株式会社にCTOとして参加。社員第一号
開発プロジェクト全般に責任をもち、設計・開発・進行管理など全ての面で関わっている
最近の課題はチーム作り。今期のKPIは採用人数
詳しいプロフィール → https://www.wantedly.com/users/10599
• シゴト充実化サービス・アプリの提供 • 2012年2月に会社訪問サービス正式ローンチ • 2014年2月に会社訪問iPhone版リリース • アルバイト・インターン含めて25人 • 開発チームは8人 (エンジニア+デザイナ) • 利用企業2700社 • ユーザ数80000人 • https://www.wantedly.com/companies/wantedly
• iOS側 • フルネイティブでwebviewなし • 定番CocoaPodsを活用 • StoryboardとContainerを多用
• APIサーバ側 • Rails 4 で JSON APIを用意 • Webと同じコードベース • Webと同様 Heroku で運用
Elasticsearch cluster
(EC2)
RDS PostgreSQL
ELB
Heroku dynos
US East Region
Tokyo Region
S3 bucket for ImagesCloudFront
iPhone
JSON API
Image
Distribution
• RestKit - consuming and modeling RESTful web resources • AFNetworking - networking framework • SDWebImage - Asynchronous image downloader with cache support with an UIImageView category
• RNCryptor - Encryptor/Decryptor • UICKeyChainStore - a simple wrapper for Keychain • SVProgressHUD - A clean and lightweight progress HUD • TTTAttributedLabel - A drop-in replacement for UILabel that supports attributes, data detectors, links, and more.
• NUI - Style iOS apps with a stylesheet, similar to CSS • JLRoutes - Advanced URL parsing designed to handle complex URL schemes with a block-based callback API
コード管理• 開発初期はAPIサーバとiOSのコードを単一レポジトリへ • Pull Requestがひとつになる • レビューしやすい&mergeのタイミングがあう
• リリース後にレポジトリ分割 • アプリとAPIサーバのリリースサイクルの違い • Rails側はmasterは常にdeployされている (~5 deploy / day)
• アプリのアップデートは数週間ごと
コーディングスタイルガイドをGitHubで公開中 https://github.com/wantedly/objective-c-style-guide
Rails側• Continuas Integration • werckerというCIサービスを利用 (βだが十分使える)
• Pull Request毎にテスト結果を確認・コードレビュー
• masterは常にdeployableな状態にたもつ
iOS側• ユーザテストをしっかりやる
• フィードバックをもとに改善サイクルを繰り返す
• 本番と別にテスト用のQAサーバを用意 • BuildSettingsで切り替え • TestFlightで配布
• 自動テストはしていない
1. プロトタイピング • デザイナーでなくてもできる • 実機で触ってアイデアを確かめるのが大切 2. 開発 • GitHubでpull requestベースのチーム開発 • スタイルガイドを用意して標準をそろえる • 車輪の再発明をしない。定番CocoaPodsを活用 3. テスト • サーバ側でやりやすいところはしっかり自動化 • UXを高めるためにユーザテストをしっかり
Wantedlyを支えてくれる
スーパーエンジニア募集中! https://www.wantedly.com/projects/6578