Start Developing iOS Apps Today(7)~データの組み込み

2014. 03. 03
●データの組み込み

アプリのデータモデルはデータ構造で構成され、(オプションで)一貫した状態のデータを維持するために必要なカスタムビジネスロジックです。
アプリのユーザインターフェイスから完全に分離したデータモデルを設計する必要はありません。
ただし特定のビューまたはビューコントローラの存在に依存することなく、別々にデータモデルオブジェクトを実装するようにします。
データをユーザインターフェイスからの分離を維持すると、ユニバーサルアプリ(iPadとiPhoneの両方で実行できるアプリ)の実装や、後からコードの一部を再利用することが容易になることが分かります。

ModelViewController_m_2x.png



●モデルの設計

単純に少量のデータを格納する必要がある場合、Foundationフレームワーククラスが最良の選択肢かもしれません。
自身で同じことをする実装を試みる代わりに、既存の動作が利用可能かを確認するため、Foundationクラスを調べます。
例えば貴方のアプリが文字列のリストの追跡し続ける必要がある場合、その役割をこなすためにNSArrayとNSStringに依存することができます。
これらや他のFoundationクラスについては「Foundationでの処理」で詳細を学びます。

データモデルがデータの格納だけではなくカスタムビジネスロジックを必要とする場合は、カスタムクラスを記述することができます。
独自のクラスの実装に、どのように既存のフレームワーククラスを組み込むことができるかを検討してください。
それらを作り直そうとする代わりに、カスタムクラス内で既存のフレームワーククラスを使用することが有益です。
例えば、カスタムクラスは情報を処理するために独自の機能を定義するが、情報を格納するためにNSMutableArrayを使用する場合があります。

データモデルを設計する時に心に留めておくべき、いくつかの質問を以下に示します。

格納する必要があるデータの種類は何か?
格納するのがテキスト、ドキュメント、大きな画像、または別の種類の情報なのかどうか、適切にコンテンツの特定の種類を処理するデータモデルを設計します。

使用できるデータ構造は何か?
使用することができるフレームワーククラスを決定し、カスタム機能を持つクラスを定義する必要があります。

どのようにユーザインターフェイスにデータを提供するか?
モデルはインターフェイスと直接通信するべきではありません。
モデルとインターフェイス間で相互作用を処理するには、コントローラにロジックを追加する必要があります。



●モデルの実装

効率の良いコードを記述するには、Objective-Cとその昨日の詳細について学ぶ必要があります。
このガイドでは簡単なアプリの構築方法を教えていますが、独自の完全に機能するアプリを記述する前に言語に精通したいでしょう。

Objective-Cを学ぶには、いくつかの良い取り組み方があります。
一部の人々はObjective-Cによるプログラミングを読んで概念を学び、それから言語の理解を固めるために多くの小さなテストアプリを記述し、良いコードを記述する練習をします。

それ以外にプログラミングにすぐに飛び込んで、何かを達成する方法が分からない時に更に情報を探す手法もあります。
この手法を好む場合、Objective-Cによるプログラミングを参考として概念を学び、開発するアプリに適用する演習をします。

最初のデータモデルを開発する上で最も重要な目標は、動作する何かを取得することです。
データモデルの構造については綿密に検討しますが、完璧にすることについて心配しないでください。
実装を開始した後にモデルの改良を繰り返すことを恐れては行けません。



参考文献

Apple/Start Developing iOS Apps Today

0 CommentsPosted in 資料





Bose QuietComfort 25
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
02 | 2017/03 | 03
Sun Mon Tue Wed Thu Fri Sat
- - - 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 -
Recent Articles
iTunes


Swift
Categories
Tips
WACOM


Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
BOSE

Bose QuietComfort 25
ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
SQLite
OpenGL ES
Amazon


Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Profile

Author:水月杏香
永遠の初心者プログラマ。

QR Code
QR
Visitors