Story boardを使わず、UIKitを使ってアプリを作成する方法 http://www.slideshare.net/SatosiOkubo/uikit ハンズオントレーニングUikit編 from Satosi Okubo Observerパターンを、Objective-Cで実現する方法(Delegate,Notification,KVO) http://www.slid…
今回でツリーテーブルは、最終回です。 最後は見栄えを少し修正します。えぇ少しです。 変更は3点 色の変更 セルとページヘッダーの上下に線を入れる。 セクションの背景をグラデーションにする。 色を変更します、CustomCellの色を下記のように変更します…
前回までで表示部分はだいたい完成したので、今回は動きの部分を実装していきます。 動きとして実装したいのは セクション選択時に、セクションが開閉する。 セルを複数選択可能にする。 まず、セクション選択時の動きですが、セクションが選択されたことを…
ツリーテーブルの3回目。今回は、本体の部分であるUITableViewを作成していきます。 本体となる、TreeTableViewControllerを作成します、基底クラスにUITableViewControlerを指定します。また、表示するデータを保持するメンバ変数として、データソース(data…
ツリーテーブルの2回目。今回から表示部分を実装していきます。 ツリーテーブルの表示としては、大きく3つ。 一番上のヘッダー ツリーの親 ツリーの子 となります。 それぞれを、UITableの ページヘッダー セクションヘッダー セル で実現します。 それで…
facebookアプリでツリー上のテーブルが使われているのを、ご存知でしょうか。こんなやつです。 今回から数回にわたって、同じようなツリー上のテーブルを作成してみたいと思います。イメージはこんな形。 ベースとするプロジェクトは、2012-08-11の記事にあ…
今日は、デザインパターンで言うところのProducer-ConsumerパターンをObjective-Cで実装してみます。(GCDで並列化する方法もありますが、今回は使いません。) 複数の処理があった場合、処理を並行に処理したいようなことがあります。 例えば、Webへのリクエ…
xCode4でInterface Builder(Nibファイル)を使わないで開発する方法です。ストーリーボードいいですね、使いやすい。しかし、iOS4に対応していない。 iOS6が出て1年ほど経過すればシェアのほとんどをiOS5〜6になるとは思うのですが、今はiOS4のシェアもそこそ…
Titanium Mobileを勉強しはじめたのですが、折角なのでiPhoneとAndroid両方にアプリリリースを目指して開発をはじめました。 ここのOS独自部分で分岐はあるにしても、ひとつのソースで両OS用のアプリを開発をできるか検証していきます。 開発するための言語…
2冊、本を買いましたのでご紹介しておきます。 1冊目は「Titanium Mobileで開発するiPhone/Androidアプリ 」 Titanium Mobileの本です。iPhoneとAndroidの両方について解説されています。少し内容が古いですが、APIリファレンスとして使うにはいい感じです。…
「iPhoneアプリを作りました」と言っても、サンプルを動かしただけですが・・・ 前回、Windows環境でTitanium Mobileを使い、Androidアプリを動かしました。こんどはMacでiPhoneアプリを動かしてみます。 前回同様、開発環境の構築ははしょります。Titanium …
Android開発を勉強しはじめたのですが、Android開発は、Android SDK + Eclipseによる開発が現状のデファクトと言っていいでしょう。(将来的にはHTML5+Javascriptに世界は流れると考えています。) しかーし、私はひねくれ者なのでTitaniumやHTML5+Javascript(…
簡単なiPhoneアプリを、Action Scriptで作成して実機で動作させてみます。 Action Scriptなんて何年も使ってないので、すっかり忘却の彼方。フラッシュチュートリアルでググり、ふらちゅうさんのサンプルをいただいてきます。 カラフルな円がたくさん表示さ…
Adobe CS5.5を発売日前に入手できました、最速レポートです。Adobe Flash Professional CS5.5 まずは、画面の確認です。起動画面です、iOSに加えAndoroidが追加されたようです。 「iPhone OS」から「AIR for iOS」に名称が変わっています。 AIR for iOSを新…
前回、こういうことを言ってたのですが 開発プラットフォームを用意するのが大変(Macだけで良いかもしれませんが…) 開発ツール、言語をそれぞれで覚えるのは大変 作ったアプリの資産をiOS、Andoroidで共有したい 少々、調べました。いろいろ開発ツールはでて…
iPhoneアプリもAndroidアプリも作りたいけど 開発プラットフォームを用意するのが大変(Macだけで良いかもしれませんが…) 開発ツール、言語をそれぞれで覚えるのは大変 作ったアプリの資産をiOS、Andoroidで共有したい 開発プラットフォームとしてLinux、Wind…
SQLiteでテーブルにデータを追加する際、あれば更新なければ追加ということがしたかったので 1.あるかどうかのチェックをSELECT文 2-1.あればUPDATE文 2-2.なければINSERT文 という形で実装していたのですが、なければSELECT→INSERT、あればDELETE→INSERTと…
Whatʼs New in Xcode 4.0.1 Improved Assistant editor logic when switching among different file types Fixed a bug that prevented indexing of some projects Fixed a bug related to nil settings in the Core Data model editor Fixed a bug in LLVM G…
基本、MGTwitterEngineのAPI呼び出しの結果は、デリゲートメソッドのxxxxReceivedで受信して処理することになります。 結果がNSArrayで返ってきます。NSArrayには、1件分のNSDictionaryが格納されています。 あとはobjectForKeyを使って、各値を取り出せばOK…
3日くらいで作っちゃいました。リジェクトされなければ、4月はじめくらいにストアに並びます。プログラミングしている時間より、Illustratorでお絵かきしていた時間の方が長かったw サウンド、ネットワークとアプリを組んだので、次はカメラアプリです。プ…
昨日から、新しいアプリ作成に入りました。プログラミングは、1日でほぼ終わったのですw あと、ローカライズとか細かな作り込み、アイコンとかのデザインがまだなのです。アイコンは、イメージはあるけど絵に落とす能力がw あぁ、睡眠が削られていく。
DBテーブルからのUITableViewに表示する際に、データ数が多い場合に全部読み取るとメモリ消費も大きくなりますし、データに対して処理をする場合は時間もたくさんかかってしまいます。そのため、一度に読む量を区切り順番にページ送りして表示するようにペー…
MGTwitterEngineを使っていて、同期通信を行いたい場面がでてきました。NSURLConnectionでsendSynchronousRequestで同期通信で送信するものを、最初に作りましたがタイムアウトの設定ができない、途中でキャンセルできないなどの問題がありました。 そのため…
iPhoneアプリをリリース後に、機能追加でテーブルの構造を変更する必要が生じました。sqlite3のDBファイルは、初回のアプリインストール時に作成されて、アプリをバージョンアップした際でも上書きされません。 ※アンインストールすると、DBファイルも消えま…
今回は、制約です。だんだん、iPhoneから遠ざかってる気がしてきましたがw 制約とはテーブルという器に、入れる値にルールをつける機能です。この列にはこんな値しか許さないというルールをつけることができます。 今回は次の4点を紹介しておきます。 NOT N…
テーブルにインデックスをつけましょう。 インデックスとは、本で言うところの目次です。特定の情報を探すときに、本のページを全部読むより、目次だけを読む方が早く読めますよね。それと同じでテーブルにデータを入れた時に、インデックスを作成することで…
SQLite3の過去の記載に間違いがちらほら、気づいたところは直しました。まだ間違いがあるかもしれませんので、サンプルソースを確認していただいた方が確実です。また、テーブルの構造を変更しましたのでご注意ください。 サンプルは、Testボタンのみw ボタ…
今回はDBのエラー処理を実装していきます。エラー処理を放置していましたので作りこんで行きます。 基本方針として、メソッド毎に戻り値を見てエラー処理をするのは面倒なので、try catchを使ってエラーをさばいていくことにします。 try catchを使えば、try…
今回は、追加と更新についてです。SQLではINSERT文とUPDATE文を使います。 INSERT文の例 INSERT文では、どのテーブルにどんな値を追加したいかを記述します。列の個数と列の順番にあわせて値を記述します。 INSERT INTO テーブル名 VALUES (値, 値, 値, 値…)…
今回は、削除についてです。SQLではDELETE文を使います。 DELETE文の例 DELETE文では、どのテーブルを削除したいかを記述します。また、削除するときにこんなデータだけ削除するという、条件をつけることもできます。 DELETE FROM TABLE名 WHERE 条件例えば…