独自クラスをUserDefaultsで保存するには[Swift]

独自クラスを作成し、それをUserDefautsに保存してデータを永続化したい場合、シリアライズする必要があります。

 

シリアライズ・・・オブジェクトの内容をバイナリに変換すること

 

iOSにはシリアライズ、デシリアライズのためのクラスが用意されています。

それぞれ、NSKeyedArchiverクラスとNSKeyedUnarchiverクラスです。

知りあらず処理を実行することで、オブジェクトはシリアライズされたデータを扱うことのできるData型に変換されます。

伴侶となる書籍を買いました。

f:id:team_ikeike_app:20170605011527j:plain

SBクリエイティブ:はじめてのAndroidプログラミング

 

お疲れ様です。イケイケ担当横山です。

今週もイケイケな週末を過ごしました。

 

転勤によってだいぶ更新が開いてしまいましたが、落ち着いてきたのでこれからバンバン更新していきます。端的にまとめていきます。

 

今週は本を買いました。超初心者でも大丈夫、とこんな機能を使ってこういうふうにアプリを作ろう、が乗っているので選択しました。

本当に良かったかはこれから更新していきます。

 

とりあえず、現状、平日は調査、休日は実装のはずが、平日は疲れて寝る、休日に調査(本を買うだけ)になっているので、せめて休日に実装していきたいと思います。

今週はエミュが重すぎて使えない問題があるので、平日はその調査に当てます。

 

ということで、具体的にコミットしました。スモールスタートでもやめないことが大切だと思います。ゆるやかに進んでいくのでこれからもよろしくお願いします。

 

 

iOSでデータを扱う方法

swift学習中 team_ikeike_app 穂積です。

 

今日は、iOSアプリでデータを永続化する仕組みについて学習したので要点をまとめておきます。

 

iOSアプリで最も気軽に利用できる永続化の仕組み:NSUserDefaults

NSUserDefaultsは、永続化の仕組みであり、「key=value形式」でデータを保存することが可能で、

実装の際のコード量も少なく便利です。

この形式で保存したデータはローカルストレージのアプリ内部にplist形式で保存されます。

*plistの実体はxml

 

NSUserDefaultsの処理速度は非常に高速。毎回上述のplistに直にアクセスするのではなく、ファイルの内容をメモリに読み込んでおき、

それをアプリが参照する形式だからです。超便利ですね!

*このように一時的にメモリに値を保存して利用する形式をキャッシュと呼びます。

f:id:team_ikeike_app:20170527155513p:plain

 

f:id:team_ikeike_app:20170527160414j:plain

このようにして、データの永続化が可能です。

ただ、NSUserDefaultsはアプリ起動時にメモリにデータを読み込むため、あまり大量のデータを扱うとアプリ起動が遅くなります。

そのためNSUserDefaultsで扱うのは軽量なものに止めるよう注意しましょう!!

*参考書籍*

本気ではじめるiPhoneアプリ作り Xcode 7.x+Swift 2.x対応 黒帯エンジニアがしっかり教える基本テクニック (ヤフー黒帯シリーズ)

project・task管理にJootoを採用

team_ikeike_app 穂積です。

 

team_ikeike_appでは、チームのタスク管理にJootoを採用しています。

90000ユーザーが使っている、今話題のタスク管理ツールです。

www.jooto.com

 

会社ではRedMineを利用していますが、Jootoでのタスク管理の方が

タスクをより楽しくできます。

こんな感じです。

f:id:team_ikeike_app:20170520204409p:plain

今日の活動予定

team_ikeike_app 穂積です。

今日の活動予定をあらかじめコミットしておきます。

 

今日はイケイケ担当横山さんと共に渋谷にあるfabCafeにてとりあえず動くアプリを実装しています。

fabCafeはwifiがあり、道玄坂の上の方にあり落ち着いているため

ちょっとした作業をするのに最適です。

 

fabcafe.com

 

横山さんは何か食べてました。

 f:id:team_ikeike_app:20170520182539j:plain


今日の目標

穂積:計算機アプリの実装・toDoアプリの実装(本に沿って)

横山:追加・削除のできるリストの実装

 

以上を目標に取り組みます。