タグ

ブックマーク / glassonion.hatenablog.com (24)

  • 今から始める Swift 3 対策 - A Day In The Life

    Xcode 7.3 から Swiftのバージョンが 2.2 になりました。このバージョンから Swift 3 に向けた deprecated(非推奨)警告が出るようになったのでその対策です。 '++' is deprecated: it will be removed in Swift 3 結構話題になったインクリメント(デクリメントも)演算子の廃止の対策です。+=使えってことらしいです。Python もインクリメント演算子ないので、案外無くても困らないのかもしれませんね。 修正前 var i = 0 i++ 修正後 var i = 0 i += 1 「--」も同じで「-=」を使いましょう。 C-style for statement is deprecated and will be removed in a future version of Swift C言語風の for 文が廃止に

    今から始める Swift 3 対策 - A Day In The Life
    invent
    invent 2016/06/07
  • iOSアプリ開発の本を書きました - A Day In The Life

    ご無沙汰しております。約半年ぶりの記事です。 この間、ずっと iOS アプリ開発のを書いていました。タイトルは「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」です。 出版社様から書籍執筆のお話を頂いたのが約1年半前でした。やっと発売にこぎつけることができました。2月26日発売です。早ければ22日から書店に並ぶと思います。 の内容のいくつかは当ブログの記事が元になっています。iOS アプリ開発をはじめられたばかりの方からバリバリ開発している方まで幅広く読める内容になっています。魂込めて書いた自信作ですのでよろしくお願いします。 発売に先駆けて「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」の目次を紹介させていただきます(ついでに元になったブログ記事へのリンクをはっておきます。中身検索的な感じでお使いください)。 iPhone/iPa

    iOSアプリ開発の本を書きました - A Day In The Life
    invent
    invent 2013/02/13
    iOSアプリ開発の本を書きました - A Day In The Life
  • iOS データ設計入門 - A Day In The Life

    「iOS アプリの画面開発の基礎を理解する」でアプリの画面と画面遷移について説明しました。アプリの見た目はとても大切ですが同じぐらい大切なこととして、データの活用方法があります。 ユーザに必要なデータは何か、そのデータに価値を持たせて情報にするにはどうすればよいか、データをどこに記憶すればよいかについて説明していきます。 そもそもデータって何? データとはコンピュータが記憶することのできる文字や符号、数値などの集まりです。データはコンピュータ上で0と1の固まり(バイナリ)としてあつかわれます。バイナリが集まって意味を持ったものがデータであり、そのデータがさらに集まって意味を持ったものが情報です。図にすると以下のような感じになります。 バイナリは CPU、データはプログラム(アプリ)、情報はユーザがあつかいます。それぞれ解釈できる単位が違います。 データと情報の違い データそのものはユーザに

    iOS データ設計入門 - A Day In The Life
    invent
    invent 2012/07/11
    iOS データ設計入門 - A Day In The Life
  • iOS アプリの画面開発の基礎を理解する - A Day In The Life

    前回の記事「iOS アプリの構造がどのようになっているか紐解いてみる」で iOS アプリの構造について説明しました。深いところの説明ばかりだったのでもう少し浅いところ、画面の見た目や画面遷移を実装する方法について説明します。 ユーザの要望がどのようにアプリに反映されるのか アプリができる背景には「アプリでこんなことしたい」というユーザの要望とか、開発者自身の「アプリを通してXXのような素晴らしい体験をユーザに提供したい」という思いが出発点になっています。 ユーザの要望だったり開発者の思いは「UX設計」「ユースケース抽出」「UI設計」という3つの段階に分けてアプリに反映していきます。図にすると以下のような感じです。 UX(ユーザエクスペリエンス)設計 ユーザの要望や開発者のこんなもの作りたいという思いを元に、いつ、どこで、誰が使うのか?アプリが使われる状況を洗い出す。その上でユーザがアプリを

    iOS アプリの画面開発の基礎を理解する - A Day In The Life
    invent
    invent 2012/06/18
    iOS アプリの画面開発の基礎を理解する - A Day In The Life
  • iOS アプリの構造がどのようになっているか紐解いてみる - A Day In The Life

    iOS アプリの構造がどのようになっているのか理解しなくても簡単なアプリを開発することは可能です。実際自分も iOS アプリの開発をはじめたことろはそうでした。しかしアプリの構造を理解していないと複雑なアプリ、例えばタブとナビゲーションを組み合わせたアプリやマルチタッチやジェスチャーを使ったアプリなどを作ろうとしたときにハマることが多いです。 記事では iOS アプリの構造について説明します。 一番単純なアプリの構造 それでは iOS アプリの中でも一番単純なアプリの構造がどうなっているのか見てみましょう。 iOS で一番単純なアプリは画面を一つ表示するアプリです。画面を一つ表示するアプリはシングルビューアプリケーション(Single View Application)といいます。 ラベルもボタンもなく、ただ真っ白な画面を表示するだけのアプリがどのような構造になっているのかみてみましょう

    iOS アプリの構造がどのようになっているか紐解いてみる - A Day In The Life
    invent
    invent 2012/05/18
    iOS アプリの構造がどのようになっているか紐解いてみる - A Day In The Life
  • コロプラは永久に不滅です。 - A Day In The Life

    私事ではありますが2012年3月31日を持ちまして株式会社コロプラを退職することになりました。3月4日が最終出社日でした。 在職中お世話になった皆様当にありがとうございました。 コロプラに入社したのは2010年8月23日で1年7ヶ月と在籍期間は短いですがとても充実した日々を送ることができました。 リリースされて間もない Android 版コロプラの引き継ぎに始まり iPhone 版コロプラの新規開発、プラットフォーム対応したコロプラのスマートフォン対応、Android 版の位置情報精度の向上、写真投稿機能追加、アプリ内課金対応(In-App Purchase, In App Billing)、サーバからの Push 情報配信(APNs, C2DM)、アプリの実装からサーバ API の開発まで幅広くいろいろできました。自分がスマフォアプリでやりたかった技術はほぼすべてチャレンジすることがで

    コロプラは永久に不滅です。 - A Day In The Life
    invent
    invent 2012/04/01
    コロプラは永久に不滅です。 - A Day In The Life
  • AndroidとiPhoneの加速度計アプリの実装方法を比較してみる - A Day In The Life

    大きな違いとしてはiPhoneの場合加速度計のみ管理しているのに対してAndroidは他のセンサー(温度計や磁気センサーなど)と一括りにして管理しています。またiPhoneでは加速度計オブジェクトを直接取得できるのに対しAndroidでは加速度計オブジェクトを取得することができません(Android1.5からSensorクラスが追加され加速度計オブジェクトを取得できるようになりました)。 iPhoneの場合 UIAccelerometerDelegateプロトコルを実装したクラスに加速度イベント(accelerometer:didAccelerate:メソッド)を実装する UIAccelerometer#sharedAccelerometerメソッドで加速度計のオブジェクトを取得する UIAccelerometer#delegateを設定すると加速度イベントが発生する ローパスフィルター(

    invent
    invent 2012/03/07
    AndroidとiPhoneの加速度計アプリの実装方法を比較してみる - A Day In The Life
  • シンプルで簡単に HTTP 通信が出来るライブラリを公開しました - A Day In The Life

    iOS で HTTP 通信をするときはいつも ASIHTTPRequest を使っていました。 しかし残念なことに最近 ASIHTTPRequest の開発が終了してしまい Automatic Reference Counting(ARC) に対応する予定もないようなので自分で ARC に対応した HTTP 通信のライブラリを作成しました。 コードは github で公開しています。ライセンスはBSDライセンスです。 R9HTTPRequest 中身はただの NSURLConnection のラッパーです。コード量も少なく軽いライブラリです。 主な機能は以下の通りです。 HTTP GET POST PUT DELETE など HTTP の非同期通信 ※現在非同期通信のみサポートしています。 マルチパート POST(画像送信など) 自動リダイレクトのオン/オフ WSSE 認証のサポート R9

    シンプルで簡単に HTTP 通信が出来るライブラリを公開しました - A Day In The Life
    invent
    invent 2012/03/04
    シンプルで簡単に HTTP 通信が出来るライブラリを公開しました - A Day In The Life
  • 失敗しない iOS In-App Purchase プログラミング - A Day In The Life

    最近、無料アプリや無料ゲームにアプリ内課金を設置してユーザにアイテムを購入してもらうタイプのものが増えています。App Store トップセールスのうち半数以上がこの無料 + アプリ内課金で占められています。今後アプリ内課金は iPhone/iPad アプリで儲けるための必須の機能になると言っても過言ではありません。 今回はアプリ内課金(In-App Purchase)のプログラミングについて StoreKit フレームワークの基的な使い方から失敗しないためのポイントまで説明していきます。 販売できるアイテムの種類は5種類 アプリ内課金で販売できるアイテムの種類は5種類あります。 Consumable 消費アイテム。ユーザがアイテムを使うと無くなる。例えばシューティングゲームの弾丸やコイン落としゲームのコインなど。同じアイテムを何回でも購入可能 Non-Consumable 非消費アイテ

    失敗しない iOS In-App Purchase プログラミング - A Day In The Life
    invent
    invent 2011/12/04
  • サルでもわかる Core Data 入門【実装編】 - A Day In The Life

    サルでもわかる Core Data 入門【概念編】の続きです。今回は実際に Core Data を使ったプログラムを作成します。 サンプルアプリの概要 アドレス帳アプリを作りながら Core Data の使い方を説明していきます。 以下はサンプルアプリの画面構成です。 連絡先一覧画面と連絡先詳細画面の2画面構成になっています。 サンプルアプリのソースコードはこちらで公開しています。 AddressBook 開発の流れ サンプルアプリの開発の流れは以下のようになります。 プロジェクトの作成 モデルクラスの作成 エンティティの定義とエンティティとモデルクラスの関連付け ストーリーボード(Storyboard)を使ってビューコントローラの遷移と画面デザインを作成する 連絡先詳細画面の開発 連絡先一覧画面の開発 プロジェクトの作成 それでは初めにプロジェクトを作成しましょう。プロジェクトの作成手順

    サルでもわかる Core Data 入門【実装編】 - A Day In The Life
    invent
    invent 2011/11/24
    わかりやすいね
  • サルでもわかる Core Data 入門【概念編】 - A Day In The Life

    iOS でデータを永続化する方法の続きです。今回は Core Data を使ったデータの永続化方法について説明します。 記事では複雑で習得が難しいとされている Core Data について概念編と実装編の2回に分けて説明していきます。記事の全体的な流れとしては Core Data がどういったフレームワークかというところから O/R マッピングの説明、Core Data を使うメリット、Core Data フレームワークの概要、Core Data を使ったプログラムの例まで説明します。次の記事で実際に動くサンプルを作成します。 Core Data って何? Core Data はモデルオブジェクトを永続化するためのフレームワークです。もとは Mac OS X のために開発されたフレームワークで、iOS 3.0 から使用できるようになりました。 Core Data はデータの永続化に SQ

    サルでもわかる Core Data 入門【概念編】 - A Day In The Life
    invent
    invent 2011/10/16
    よくまとまってていい記事。
  • NSUserDefaults を使ったデータの保存方法 - A Day In The Life

    iOS でデータを永続化する方法の続きです。今回は NSUserDefaults クラスを使ったデータの永続化方法について説明します。このクラスを使うと簡単にデータの保存と読み込みが出来るのでアプリ開発で頻繁に使用されています。 NSUserDefaults って何? アプリ固有の設定値を保存することに特化したクラスです。アプリ開発者は NSUserDefaults オブジェクトを通して Key-Value 形式でデータにアクセスします。データの保存場所の管理は NSUserDefaults オブジェクトがすべて行ってくれます。 実際のデータは ホーム/Library/Preferences 以下にプロパティリスト形式で保存されます。 データの保存と取得で使用するメソッド NSUserDefaults クラスにはデータ型に応じて以下の保存と取得メソッドが定義されています。 オブジェクトの型

    NSUserDefaults を使ったデータの保存方法 - A Day In The Life
    invent
    invent 2011/09/20
    [objective-c/objc][ios]NSUserDefaults を使ったデータの保存方法
  • iOS でプロパティリストを使ったデータの保存方法 - A Day In The Life

    iOS でオブジェクトをシリアライズする方法に続き今回もデータ永続化方法の紹介です。 iOS にはプロパティリストと呼ばれるファイル形式があります。プロパティリストは NSArray や NSDictionary クラスを使って簡単にデータの読み書きができます。 ここではプロパティリストを使った基的なデータの保存方法から自作クラスのオブジェクトを保存する方法まで説明します。 プロパティリストって何? プロパティリストは Mac OS X や iOS で利用することができるデータ永続化のためのファイル形式です。Mac OS X ではもっぱらユーザの情報を設定するのに使われる事が多く Windows のレジストリのような使われ方をしています。iOS では Info.plist のようにアプリの情報を設定するのに使われることが多いです。 またプロパティリストはファイルの拡張子が .plist

    iOS でプロパティリストを使ったデータの保存方法 - A Day In The Life
    invent
    invent 2011/09/12
  • iOS でオブジェクトをシリアライズしてファイルに保存する方法 - A Day In The Life

    iOS でデータを永続化する方法の続きです。今回はシリアライズされたオブジェクトの保存方法について説明します。シリアライズされたオブジェクトはファイルで保存することが容易なためデータ永続化の際に頻繁に使用されます。 シリアライズ自体はデータの保存に限らず、Interface Builder やネットワークを使ったデータの送受信などいろいろなところで使われています。 プログラマであれば必ずおさえておきたい技術の一つです。 シリアライズって何? オブジェクトの状態をバイナリ(0と1の集まり)に変換することをオブジェクトのシリアライズまたはシリアル化といいます。逆にバイナリをオブジェクトに変換することをデシリアライズといいます。 シリアライズされたデータは iOS 上では NSData オブジェクトとしてあつかわれます。NSData オブジェクトはそのままファイルに保存することができます。 iO

    iOS でオブジェクトをシリアライズしてファイルに保存する方法 - A Day In The Life
    invent
    invent 2011/09/06
  • UIWebViewにJSのライブラリを動的に読み込ませる方法 - A Day In The Life

    UIWebView で表示している HTML ページに Javascript ライブラリを動的に読み込ませる方法です。 使う場面はそうないと思いますが、興味位で試してみたらできたので記事にしました。Google Libraries API という Javascript のライブラリを使うと簡単に出来ます。 下記は Google Maps のライブラリを動的に読み込んで位置情報を取得するサンプルコードです。 @interface SmapleViewController { UIWebView *webView; } @property (retain, nonatomic)IBOutlet UIWebView *webView; @end @implements SmapleViewController @synthesize webView; - (void)webViewDidFin

    UIWebViewにJSのライブラリを動的に読み込ませる方法 - A Day In The Life
    invent
    invent 2011/08/25
  • UINavigationBarにUISearchBarをセットする時に気をつけること - A Day In The Life

    init系(initWithNibName:bundle:とか)メソッドで以下のようにUISearchBarをナビゲーションバーにセットするとナビゲーションバーのバックボタンを押したときに再びtableView:accessoryButtonTappedForRowWithIndexPath:メソッドが呼ばれてしまいます。 // 呼び出し元 @implementation HogeViewController // バックボタンで戻ってきたときに再度呼び出されてしまう。 - (void)tableView:(UITableView *)tv accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath { Hoge2ViewController *controller = [[[Hoge2ViewController a

    UINavigationBarにUISearchBarをセットする時に気をつけること - A Day In The Life
    invent
    invent 2011/06/09
  • Nexus S を快適に使うために1番よいデータプランは何か - A Day In The Life

    ゴールデンウィーク中に Google の Nexus S を購入しました。 Google Nexus S【アンドロイド2.3搭載シムフリースマートフォン】 日SIM ロックフリーの端末の契約は色々と制約が多いです。Nexus S をメインで使うか2台目で使うかで最適なデータプランも違うのでまとめてみました。 契約済の SIM を持っている場合 ドコモとソフトバンクの SIM が使えます。au はCDMA2000なので使えません。CDMA2000に対応した Nexus S 4Gであればもしかしたら使えるかもしれません(情報未確認)。 ソフトバンク スマートフォン用の契約をしている SIM があれば以下の記事を参考に使うことができます。パケ死 APN があるらしいので注意が必要です。ガラケー用の契約をしている SIM を差した場合どうなるかは未確認です。 Android Dev Phon

    Nexus S を快適に使うために1番よいデータプランは何か - A Day In The Life
    invent
    invent 2011/05/21
  • Android で LocationManager と MapView を連携させる - A Day In The Life

    AndroidGoogle Map を使ったアプリを作成しようとしたのですが、ライブラリに癖があって結構苦労しました。そこで LocationManager を使って MapView(Google Map) 上に位置情報を表示させる簡単なサンプルプログラムを作成してみました。 サンプルプログラムの機能は以下です。 位置情報取得 地図にピンを描画 ピンをタップすると取得した位置情報を表示 事前準備 まずプロジェクトのビルドターゲットを Google APIs ライブラリに変更します。そのあとで Google Map 用の API Key を用意します。 なお AndroidGoogle Map を使うための事前準備に関してこちらの記事がとても参考になりました。 AndroidGoogle Mapsを使う最も簡単なサンプル レイアウト XML Activity で直接 MapVi

    Android で LocationManager と MapView を連携させる - A Day In The Life
    invent
    invent 2011/05/14
  • Obejctive-C 3分クッキング - A Day In The Life

    この記事では C++Java、C♯、Rubyなどのオブジェクト指向言語の使用経験がある方のために Objective-C の特徴がさくっと簡単にわかるようにまとめてみました。 Objective-C ってどんな言語? オブジェクト指向言語は大きく「クラスベース動的型付け」「クラスベース静的型付け」「プロトタイプベース*1動的型付け」の3つにわけることが出来ます。Objective-C は「クラスベース動的型付け」に分類されるオブジェクト指向言語です*2。Objective-C を他のオブジェクト指向言語と比較して分類してみると以下の図のようになります。 クラスベース動的型付けオブジェクト指向言語の元祖といえるのが Smalltalk です。Objective-C は C言語をベースに Smalltalk 型のオブジェクト指向機能を持たせた言語です。 必要な前提知識 Objective

    Obejctive-C 3分クッキング - A Day In The Life
    invent
    invent 2010/12/15
  • 複数のHTTPリクエストを投げるときはNSOperationを使おう - A Day In The Life

    現在、iPhone SDKで簡単なマッシュアップアプリを作成中です。マッシュアップアプリなので一度の操作でいろんなところにHTTPリクエストを投げる必要があるのですが、そんな時にNSOperationを使うとものすごく便利です。NSOperationを使うことで複数のHTTPリクエストを同時並行で処理できるようになります。 使い方はいたって簡単でNSOperationクラスのサブクラスを用意して、そこでHTTPリクエストの処理をしてあげるだけです。 @interface RequestOperation : NSOperation { NSURL *url; NSMutableData *responseData; BOOL isExecuting, isFinished; } - (id)initWithURL:(NSURL *)targetUrl; @end @implementati

    複数のHTTPリクエストを投げるときはNSOperationを使おう - A Day In The Life
    invent
    invent 2010/12/10