勉強会に使った資料を、Slideshareにあげました。

Story boardを使わず、UIKitを使ってアプリを作成する方法 http://www.slideshare.net/SatosiOkubo/uikit ハンズオントレーニングUikit編 from Satosi Okubo Observerパターンを、Objective-Cで実現する方法(Delegate,Notification,KVO) http://www.slid…

UITableViewをツリー上に表示する。第5回目(見栄えをかっこよく)

今回でツリーテーブルは、最終回です。 最後は見栄えを少し修正します。えぇ少しです。 変更は3点 色の変更 セルとページヘッダーの上下に線を入れる。 セクションの背景をグラデーションにする。 色を変更します、CustomCellの色を下記のように変更します…

UITableViewをツリー上に表示する。第4回目(ツリーの開閉、セルの選択)

前回までで表示部分はだいたい完成したので、今回は動きの部分を実装していきます。 動きとして実装したいのは セクション選択時に、セクションが開閉する。 セルを複数選択可能にする。 まず、セクション選択時の動きですが、セクションが選択されたことを…

UITableViewをツリー上に表示する。第3回目(UI部品をUITableViewに組み込み)

ツリーテーブルの3回目。今回は、本体の部分であるUITableViewを作成していきます。 本体となる、TreeTableViewControllerを作成します、基底クラスにUITableViewControlerを指定します。また、表示するデータを保持するメンバ変数として、データソース(data…

UITableViewをツリー上に表示する。第2回目(テーブルのUI部品を作成)

ツリーテーブルの2回目。今回から表示部分を実装していきます。 ツリーテーブルの表示としては、大きく3つ。 一番上のヘッダー ツリーの親 ツリーの子 となります。 それぞれを、UITableの ページヘッダー セクションヘッダー セル で実現します。 それで…

UITableViewをツリー上に表示する。第1回目(データソースを作成)

facebookアプリでツリー上のテーブルが使われているのを、ご存知でしょうか。こんなやつです。 今回から数回にわたって、同じようなツリー上のテーブルを作成してみたいと思います。イメージはこんな形。 ベースとするプロジェクトは、2012-08-11の記事にあ…

Objective-Cで、複数スレッドで並行処理させる。(Producer-Consumerパターン)

今日は、デザインパターンで言うところのProducer-ConsumerパターンをObjective-Cで実装してみます。(GCDで並列化する方法もありますが、今回は使いません。) 複数の処理があった場合、処理を並行に処理したいようなことがあります。 例えば、Webへのリクエ…

xCode4でInterface Builder(Nibファイル)を使わないで開発する

xCode4でInterface Builder(Nibファイル)を使わないで開発する方法です。ストーリーボードいいですね、使いやすい。しかし、iOS4に対応していない。 iOS6が出て1年ほど経過すればシェアのほとんどをiOS5〜6になるとは思うのですが、今はiOS4のシェアもそこそ…

Titanium Mobileで、iPhoneとAndroid両方にアプリリリースを目指して

Titanium Mobileを勉強しはじめたのですが、折角なのでiPhoneとAndroid両方にアプリリリースを目指して開発をはじめました。 ここのOS独自部分で分岐はあるにしても、ひとつのソースで両OS用のアプリを開発をできるか検証していきます。 開発するための言語…

iPhone、Androidアプリ開発の入門書

2冊、本を買いましたのでご紹介しておきます。 1冊目は「Titanium Mobileで開発するiPhone/Androidアプリ 」 Titanium Mobileの本です。iPhoneとAndroidの両方について解説されています。少し内容が古いですが、APIリファレンスとして使うにはいい感じです。…

Titanium Mobileで、iPhoneアプリを作りました。

「iPhoneアプリを作りました」と言っても、サンプルを動かしただけですが・・・ 前回、Windows環境でTitanium Mobileを使い、Androidアプリを動かしました。こんどはMacでiPhoneアプリを動かしてみます。 前回同様、開発環境の構築ははしょります。Titanium …

Titanium Mobileを使った、Android開発をはじめました

Android開発を勉強しはじめたのですが、Android開発は、Android SDK + Eclipseによる開発が現状のデファクトと言っていいでしょう。(将来的にはHTML5+Javascriptに世界は流れると考えています。) しかーし、私はひねくれ者なのでTitaniumやHTML5+Javascript(…

iPhoneアプリを、Adobe Flash Professional CS5.5で開発し実機で動作確認

簡単なiPhoneアプリを、Action Scriptで作成して実機で動作させてみます。 Action Scriptなんて何年も使ってないので、すっかり忘却の彼方。フラッシュチュートリアルでググり、ふらちゅうさんのサンプルをいただいてきます。 カラフルな円がたくさん表示さ…

Adobe Flash Professional CS5.5を入手

Adobe CS5.5を発売日前に入手できました、最速レポートです。Adobe Flash Professional CS5.5 まずは、画面の確認です。起動画面です、iOSに加えAndoroidが追加されたようです。 「iPhone OS」から「AIR for iOS」に名称が変わっています。 AIR for iOSを新…

iPhoneアプリをWindowsで開発したい。

前回、こういうことを言ってたのですが 開発プラットフォームを用意するのが大変(Macだけで良いかもしれませんが…) 開発ツール、言語をそれぞれで覚えるのは大変 作ったアプリの資産をiOS、Andoroidで共有したい 少々、調べました。いろいろ開発ツールはでて…

FLASH PROFESSIONAL CS5を使って、iPhoneアプリ1(アプリの作成から配布まで)

iPhoneアプリもAndroidアプリも作りたいけど 開発プラットフォームを用意するのが大変(Macだけで良いかもしれませんが…) 開発ツール、言語をそれぞれで覚えるのは大変 作ったアプリの資産をiOS、Andoroidで共有したい 開発プラットフォームとしてLinux、Wind…

iPhoneでSQLite3を使う12(INSERT OR REPLACE文)

SQLiteでテーブルにデータを追加する際、あれば更新なければ追加ということがしたかったので 1.あるかどうかのチェックをSELECT文 2-1.あればUPDATE文 2-2.なければINSERT文 という形で実装していたのですが、なければSELECT→INSERT、あればDELETE→INSERTと…

Xcode4が4.0.1になってた!!

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…

TwitterをObjective-Cから使う12(MGTwitterEngineのAPI呼び出し後に値を受ける)

基本、MGTwitterEngineのAPI呼び出しの結果は、デリゲートメソッドのxxxxReceivedで受信して処理することになります。 結果がNSArrayで返ってきます。NSArrayには、1件分のNSDictionaryが格納されています。 あとはobjectForKeyを使って、各値を取り出せばOK…

今日、3本目のアプリを申請しました。

3日くらいで作っちゃいました。リジェクトされなければ、4月はじめくらいにストアに並びます。プログラミングしている時間より、Illustratorでお絵かきしていた時間の方が長かったw サウンド、ネットワークとアプリを組んだので、次はカメラアプリです。プ…

あたらしいアプリを作成しはじめました

昨日から、新しいアプリ作成に入りました。プログラミングは、1日でほぼ終わったのですw あと、ローカライズとか細かな作り込み、アイコンとかのデザインがまだなのです。アイコンは、イメージはあるけど絵に落とす能力がw あぁ、睡眠が削られていく。

iPhoneでSQLite3を使う11(DBテーブルからUITableViewを表示)

DBテーブルからのUITableViewに表示する際に、データ数が多い場合に全部読み取るとメモリ消費も大きくなりますし、データに対して処理をする場合は時間もたくさんかかってしまいます。そのため、一度に読む量を区切り順番にページ送りして表示するようにペー…

TwitterをObjective-Cから使う11(MGTwitterEngineで同期通信する)

MGTwitterEngineを使っていて、同期通信を行いたい場面がでてきました。NSURLConnectionでsendSynchronousRequestで同期通信で送信するものを、最初に作りましたがタイムアウトの設定ができない、途中でキャンセルできないなどの問題がありました。 そのため…

iPhoneでSQLite3を使う10(iPhoneアプリリリース後のテーブルの構造変更)

iPhoneアプリをリリース後に、機能追加でテーブルの構造を変更する必要が生じました。sqlite3のDBファイルは、初回のアプリインストール時に作成されて、アプリをバージョンアップした際でも上書きされません。 ※アンインストールすると、DBファイルも消えま…

iPhoneでSQLite3を使う9(制約)

今回は、制約です。だんだん、iPhoneから遠ざかってる気がしてきましたがw 制約とはテーブルという器に、入れる値にルールをつける機能です。この列にはこんな値しか許さないというルールをつけることができます。 今回は次の4点を紹介しておきます。 NOT N…

iPhoneでSQLite3を使う8(インデックス)

テーブルにインデックスをつけましょう。 インデックスとは、本で言うところの目次です。特定の情報を探すときに、本のページを全部読むより、目次だけを読む方が早く読めますよね。それと同じでテーブルにデータを入れた時に、インデックスを作成することで…

iPhoneでSQLite3を使う7(サンプルソース)

SQLite3の過去の記載に間違いがちらほら、気づいたところは直しました。まだ間違いがあるかもしれませんので、サンプルソースを確認していただいた方が確実です。また、テーブルの構造を変更しましたのでご注意ください。 サンプルは、Testボタンのみw ボタ…

iPhoneでSQLite3を使う6(DBのエラー処理)

今回はDBのエラー処理を実装していきます。エラー処理を放置していましたので作りこんで行きます。 基本方針として、メソッド毎に戻り値を見てエラー処理をするのは面倒なので、try catchを使ってエラーをさばいていくことにします。 try catchを使えば、try…

iPhoneでSQLite3を使う5(データの追加と更新)

今回は、追加と更新についてです。SQLではINSERT文とUPDATE文を使います。 INSERT文の例 INSERT文では、どのテーブルにどんな値を追加したいかを記述します。列の個数と列の順番にあわせて値を記述します。 INSERT INTO テーブル名 VALUES (値, 値, 値, 値…)…

iPhoneでSQLite3を使う4(データの削除とバインド変数)

今回は、削除についてです。SQLではDELETE文を使います。 DELETE文の例 DELETE文では、どのテーブルを削除したいかを記述します。また、削除するときにこんなデータだけ削除するという、条件をつけることもできます。 DELETE FROM TABLE名 WHERE 条件例えば…