狠狠撸

狠狠撸Share a Scribd company logo
だいすきStoryboard
【第7回】potatotips (iOS/Android開発Tips共有会)
DeNA 松前健太郎
@kenmaz
※背景画像と内容は直接の関係はありません
自己紹介
? 松前健太郎 @kenmaz
? 前職 動画にコメント流す会社でiOS/スマホまわり
? 現職 マンガボックスiOS開発 ________________
続きはウェb
? CodeIQ
? DeNA中の人が解説する「マンガボッ
クス」システム構成とiOSアプリの
内部構成
? https://codeiq.jp/magazine/
2014/05/9946/
厂迟辞谤测产辞补谤诲の罢颈辫蝉
UIパーツの定義
? なんども繰り返し使うビューはUIパーツとして定義
したい
? xibを個別に作ってもいいけど、どうせなら
storyboardで完結したい
? canvasにViewControllerを追加
? StoryboardIdを設定
? Simulated MetricsのSize = Freeform にして適当にリサイズ
? 必要に応じてUIViewのサブクラスを作ってCustom Classに設定
? viewがとれたらViewControllerは破棄しちゃってOK
UIViewController* vc = 
[self.storyboard instantiateViewControllerWithIdenti?er:@"gridview"];
MJGridView* gridView = (MJGridView*)vc.view;
...
//labelの設定、sizeの調整など
...
[self.scrollView addSubView:gridView]
だいすきStoryboard - #potatotips (iOS/Android開発Tips共有会) 第7回
表示要素の切り替え
? 条件に応じて表示内容切り替えたい
? 要素の位置は代替おなじ
? 重なっちゃう
ContainerView
まーちょっと大げさかもしれないけど
セグエの有効無効を条件に応
じて切り替え
- (BOOL)shouldPerformSegueWithIdenti?er:(NSString *)identi?er sender:(id)sender {
if ([identi?er isEqualToString:@"normal_logo"]) { //通常号のロゴ画像
return [self.magazine isNormalVolume];
}
if ([identi?er isEqualToString:@"digest_logo"]) {?//ダイジェスト号のロゴ画像
return [self.magazine isDigestVolume];
}
....
}
アプリ起動時に
処理待ちしたい
? @sintario さんにおしえてもらった b
? アプリ起動して、メイン画面が表示されるまでに、
確実に完了させたい処理がある
? バージョンアップ時のマイグレーションとかとか
? containerViewを使ってフェーズ分けよう
initial VC ↓
←main VC
←waiting VC
@implementation MJRootViewController
!
- (void)viewDidLoad {
[super viewDidLoad];
!
//必要であればマイグレーション
[MJMigration migrateWithCompletion:^{
//マイグレーションが完了したので、メイン画面のロード開始
self.migrationFinished = YES;
[self performSegueWithIdentifier:kMainEmbedSegueId sender:self];
}];
}
!
!
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:
(id)sender {
return self.migrationFinished;
}
Storyboard分割
? デバイスごと、機能毎に分割
? storyboardデカくなりすぎるとxcode重い (SSD
必須)
? コンフリクトとか
だいすきStoryboard - #potatotips (iOS/Android開発Tips共有会) 第7回
その他 (略)
? 微妙な操作はカーソルキーで
? ダブルタップすればカーソルキーで微調整できるよ
? プレビュー機能使おう
? iOS6のdeltaの調整のときに使うくらいかな?
? option + preview ってわかりヅラ
? 回転したときのチェック
? Simulated Metrics > Orientation
? Device Family = iPadのときの追加機能
? push,modal,custom 以外にも popover, replace(master-detail)
? popover: 吹き出し方向変えたり, アンカーの位置指定したり
? replace: master/detailのビュー置換の指定
? Auto Layout については聞かないでください(重要)
DeNAでは
エンジニアを
募集しています
渋谷はよい所です
渋谷タワレコ前にて遭遇(撮影許可済み)

More Related Content

だいすきStoryboard - #potatotips (iOS/Android開発Tips共有会) 第7回