Androidアプリ「二郎系」をリリースしました。
ラーメン二郎や二郎系のお店をまとめたアプリ「二郎系」をリリースしました。
選択したエリアにあるお店をリスト表示したり、Google Mapでお店をマーカーで表示し、
GPSなどの位置情報を使って近くにお店があるかを調べることができます。
お店の詳細画面からは食べログのページを表示したり、
Twitterの検索結果をリスト表示してお店について詳しく調べることができます。
iOS版をリリースして2年以上経ちましたが、
重い腰を上げて初のマルチプラットフォーム(大袈裟)に挑戦してみました。
泣く泣く機能を削ったり、まだやってみたいことはたくさんあるので
それらのタスクをこなしながら、どんどんアップデートを行っていこうと思います。
ぜひインストールしてみてください!
iOSアプリ「五郎系」をリリースしました。
タイル上に並べられた写真をタップして同じ写真を揃えてタイムを競うiOSアプリ「PairGram」をリリースしました
ゲーム開始時にInstagramのタグを選択してタイル上に並べ、そのタグに関連する写真をタップして揃えていき、
すべて揃えるまでのタイムを競うiOSアプリ「PairGram」をリリースしました。
是非、カワイイワンちんやネコちんの写真におっとりしながらペチペチタップして揃えてみてください。
無料です。
今回は画面デザイン(配置)や画面遷移処理にはStoryBoardを一切使わず、
ゲームエンジンとして一般的に使われているCocos2Dを使って、
シーン(画面)の切り替えやスプライト(写真)を配置しています。
フォントもビット調(っていうのかな?)を使ってレトロゲームみたいに仕上げてみました。
また、タイムなどの計測したデータはCoreDataでは一切保存せず、
NSUserDefaultsでバイナリーをゴロっと保存しています。
メリットはあんまりありません。手軽なくらいです。
要は今まで作ったアプリとは少し違ったアプローチで実装したかっただけです。
もしダウンロード数が増えてきたらGameCenter機能を実装してみようと思います。
DataFixturesのloadでext_translationが無いよエラーの対処
Symfony2の備忘メモ。
$ app/console doctrine:fixtures:load
を実行した時に、
[PDOException] SQLSTATE[42S02] : Base table or view not found: 11046 Table '[DB名].ext_translations' doesn't exit
みたいなエラーが出た場合、いったん以下で更新を掛けたら解決しました。
$ app/console doctrine:schema:update --force
ただし、強制更新なので手動で構成を変えた場合は元に戻るので注意。
時間を進捗ベースでリスト管理できるiOSアプリ「Targets」をリリースしました
カテゴリーごとに目標時間を設定し、カテゴリー内のタスクの時間を計測することで
時間ベースの進捗管理ができます。
カテゴリーのカラーも6色から選択できます。
セクション部分のカラーとして使ったり、UITableViewCellの背景色にも透過率を変えて使ったりして、
リストをカラフルにしてみました。
タスクについては実際の時間を簡易ストップウォッチで記録していき、
完了チェックを付けると進捗に反映されます。
技術的には、CoreDataの本を一通り読んで理解したので実装に無駄をなくしました。
(まだあるかもしれませんが、後ほど見直します...)
以下の技術書は本当に良書です。大変お世話になりました...m(_ _)m
- 作者: 國居貴浩
- 出版社/メーカー: 秀和システム
- 発売日: 2013/10/31
- メディア: 単行本
- この商品を含むブログ (3件) を見る
それと、UITableViewのセクション部分のタップ処理をどう実装するかをいろいろとググって解決しました。
アプリの内容は大変シンプルなものですが、今までに実装したアプリでは使ってなかったUICollectionViewや、
セクション部分のみ表示するようにしたり個人的には壁に打ち当たりながらも何とか進めてきました。
初期の実装では、ViewDeckを使ってみたり(GMailアプリにある左側にスライドして出る仕組み)、
レベルと経験値の概念を入れてみたりしたのですが、コンテンツ不足のためお蔵入りになってしまいました。
いつかはリベンジしたい!
ということで、当アプリをぜひ使ってみて下さい。
NSUserDefaultsを使ってデータを保存
アプリ内でデータを保存する場合にCoreDataを使うという手もありますが、
テーブル定義が〜とか定義を変更した時にマイグレーション処理が〜など色々とめんどいので、
代わりにNSUserDefaultsを使って比較的楽に保存する方法があります。
NSUserDefaultsは、iPhoneやiPadのアプリの設定画面の情報を
取得したり設定できるクラスです。
二郎系アプリでは設定画面は用意していませんが、
NSUserDefaultsを使ってお気に入り機能を実装しました。
お気に入り登録したお店情報リスト(NSData)をまるっと保存しています。
・保存時
//お店情報リスト NSArray *shopList = [NSArray arrayWithObjects:@"お店1", @"お店2", @"お店3", nil]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; //お店情報リスト(NSArray)をデータ化(NSData) NSData *shopData = [NSKeyedArchiver archivedDataWithRootObject:shopList]; //shopListキーを指定してデータを保存 [defaults setObject:shopData forKey:@"shopList"]; if (![defaults synchronize]) { NSLog(@"defaults setObject error"); return; }
・取得時
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; //shopキーのデータを取得 NSData *shopData = [defaults dataForKey:@"shopList"]; //データをリスト化 NSArray *shopList = [NSKeyedUnarchiver unarchiveObjectWithData:shopData];