TOKOROM BLOG

iOSとかVimとかその他日々の雑多な技術情報

Objective-Cのコードを削れるだけ削る7のTips はてなブックマーク - Objective-Cのコードを削れるだけ削る7のTips

Permalink

既存記事のまとめのため新しい要素があるわけではないのですが、Appleから発表されたXcode 5が正式にリリースされる前の復習ということで。

Tipsを適用する前のコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#pragma mark - Private Category

@interface Sample ()

@property (strong) NSNumber* i;
@property (strong) NSNumber* c;
@property (strong) NSNumber* f;
@property (strong) NSArray* array;
@property (strong) NSDictionary* dictionary;
@property (strong) Sample* child;
@property (strong) UIColor* color;
@property (assign) NSUInteger index;
@property (assign) CGRect rect;

- (void)privateMethod1;
- (void)privateMethod2;
- (void)privateMethod3;

@end

#pragma mark - Main Implementation

@implementation Sample

@synthesize i = i_;
@synthesize c = c_;
@synthesize f = f_;
@synthesize array = array_;
@synthesize dictionary = dictionary_;
@synthesize child = child_;
@synthesize color = color_;
@synthesize index = index_;
@synthesize rect = rect_;

- (void)privateMethod1
{
  [self privateMethod2];
  [self privateMethod3];
}

- (void)privateMethod2
{
  self.i = [NSNumber numberWithInt:100];
  self.c = [NSNumber numberWithChar:'a'];
  self.f = [NSNumber numberWithFloat:3.14f];
}

- (void)privateMethod3
{
  self.array = [NSArray arrayWithObjects:@"1", [NSNumber numberWithInt:1 + 2], [NSNumber numberWithBool:YES], nil];
  self.dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"val1", @"key1", @"val2", @"key2", nil];

  self.child = [[Sample alloc] init];
  self.color = [UIColor redColor];
  self.index = 7;

  self.rect = CGRectMake(0.0, 10.0, self.bounds.size.width, self.bounds.size.height);
}

@end

これを以下の7のTipsで削れるだけ削っていきます。

iOS 7 Video の内容の書き起こしと日本語訳(寄稿:UIデザイナMorino氏) はてなブックマーク - iOS 7 Video の内容の書き起こしと日本語訳(寄稿:UIデザイナMorino氏)

Permalink

今回の記事はUIデザイナの Morino@WWDC2013参加中 に寄稿いただきました!

Appleの公式サイトに iOS 7 を紹介するビデオが公開されましたね。
http://www.apple.com/ios/ios7/

特に前半の4分間でジョナサン・アイブ氏により語られているiOS 7の説明部分に、今回の大きなデザイン変更の様々な要点が含まれており、これからのアプリ設計のあるべき方向性が示唆されています。
これらをよく理解しておくことが非常に重要だと感じていますので、自分自身の復習のためとみなさんへの展開の意味で、書き起こし&和訳を行いました。

デザイナのみならずアプリ開発者の皆様にも有用かと思いますので、ぜひご参照ください。

Xcode 5: TDD/CIまわりに強力なアップデート(Appleがサイトで公開している範囲内で) はてなブックマーク - Xcode 5: TDD/CIまわりに強力なアップデート(Appleがサイトで公開している範囲内で)

Permalink

tokorom@WWDC2013参加中です。
WWDC2013で膨大なアップデートを学習中でしゃべりたいことが盛りだくさんなんですが、NDAのため我慢の日々。

で、キーノートの範囲の話は既に各所で情報が出ているわけですが、キーノートに出ていない項でも、Appleが非ログインで参照できるサイトで既に公表しているものがいくつかありました。

概要レベルでありますが、なかでも TDD とか CI まわりでiOSアプリ開発者にとって嬉しい情報がありましたので報告させていただきます。
あくまでもAppleのサイトで公表されている範囲内のことしか書けませんのであしからず。

UIAlertViewよりもおとなしいメッセージダイアログを利用する はてなブックマーク - UIAlertViewよりもおとなしいメッセージダイアログを利用する

Permalink

UIAlertViewは警告目的のダイアログ

そもそもUIAlertViewはエンドユーザになんらかの警告をするときに利用するもので、iOSヒューマンインターフェースガイドラインにも、

1
2
3
一般にアラートは、次のような場合には不要です。
* なんらかの情報、特にアプリケーションの標準機能に関する情報を目に付かせるためだけの場合。
  代わりに、アプリケーションのスタイルに調和し、目を引く情報表示の方法を設計すべきです。

と記載されています。

その一方で、UIAlertViewは簡単に利用でき、なんらかの情報を表示するのにどうしても使いたくなってしまいます。
それならばUIAlertViewの外観を変えて使えば、というのも考えられますが、ところがどっこいUIAlertViewはAppearanceの変更を一切サポートしていません。

警告目的のアラートダイアログの外観がアプリによって変更されると、エンドユーザからすればそれがなんらかの警告であると認知しづらくなってしまうからだと思われます(アラートダイアログについては全アプリで共通であるべきという思想)。

警告目的ではない普通のメッセージダイアログ

それでは、警告目的でない汎用的に使える普通のメッセージダイアログがあったほうが良いねという話になり、作ってみました。

https://github.com/tokorom/SSGentleAlertView

このSSGentleAlertViewは、

  • UIAlertViewと同じコードで利用できる
  • UIAlertViewとは違い、外観を変更できる
  • デフォルトではUIAlertViewよりもおとなしめなダイアログ表示になる

という3点に留意して作っています。