投稿者別アーカイブ(図子)
こんにちは。アプリケーション共同開発部 開発担当の図子です。
Apple Watch いいですよね。今もさっそくアクティビティ.app を有効にしたまま、Apple Watch をつけてこの記事を書いています。
Apple Watch に通知が届くには
- Apple Watch を身につけている
- iPhone 側が Lock されている
など諸条件があります。これは通常の利用シーンを考えると iPhone と Apple Watch で無駄に重複して通知が溜まらないなど合理的な仕組みだと思います。しかし、Local Notification や APNs を利用した Watch App の開発中にはこれって結構面倒くさいものです。
そこで今回は開発時にもう少し楽に検証できる方法をお伝えします。
こんにちは。アプリケーション共同開発部 開発担当の図子です。
ついに届きました Apple Watch ! 届いた Apple Watch を拝みつつもささっと Apple Watch を iPhone とペアリングした開発者のあなた。Apple Watch も iPhone と同様にデバイス登録が必要なのです。今までシミュレータでの開発でやきもきしていた気持ちをいち早く解消するために、Apple Watch 実機で動作確認をする方法をご紹介します。
こんにちは!
昨日、入社 7 年目を迎えました共同開発部 開発担当の図子です。
Fenrir Advent Calendar 2014 の 5 日目を担当します。
私の「2014 年にグッときたコレ」というか 2014 年に 1 番緊張したのが一昨日弊社で開催された「フェンリルプロダクト技術勉強会」でのプレゼンです。
当日私から発表させていいただいた「iOS アプリのチーム開発における自動化」の内容と「フェンリルプロダクト技術勉強会」の様子をご紹介させていただきます。
こんにちは。共同開発部 門多です。
BLE 連載の第7回は、iOS で CBCentralManager を使った開発において、
はまりやすいと思われるポイントを中心にまとめたいと思います。
本連載の第2回を読まれて、
実際にアプリを作ってみた方には、もしかしたら頷かれるものもあるのではないでしょうか?
以下、個別にみていきましょう。
こんにちは。共同開発部 開発担当の図子です。
Bluetooth LE の連載が今回で6回目となりました。今回は iOS 7 で追加された機能や API の変化をあげていきたいと思います。
こんにちは。共同開発部 開発担当の図子です。
先週 からはじまりました Bluetooth LE (以降 BLE)の連載。今回は iOS デバイスで BLE 機器と通信できるようにするために簡単なアプリを作って説明していきたいと思います。
- 第1回 Bluetooth Low Energy の基礎
- 第2回 iOS デバイスで Bluetooth LE 機器を使う
- 第3回 iOS デバイスを Bluetooth LE 機器にする
- 第4回 Windows 8.1 の Windows ストアアプリで BLE を使う
AdHoc ビルドを作成し、実機に転送できないことがあったのでその解決方法の一つをご紹介します。
こんにちは、共同開発部 iOS アプリ開発担当の図子です。
iOS 開発をしている皆さんはメモリリークのチェックを行っていると思います。どのような方法で確認していますか?おそらく以下のような方法で行っていると思います。
・Static Analyzer を使う
・Instruments の Leaks テンプレート
でも、これだけでは見つからないメモリリークが起こりうることをご存じでしょうか?
こんにちは、共同開発部 iOS アプリ開発担当の図子です。
iOS 開発をしている皆さんはどういったタイミングで View のレイアウトをおこなっていますか?私は1年くらい前までは ViewController の viewWillAppar 等のメソッド内や、ViewController から View へ情報をセットするタイミングで ViewController 側から直接 View の frame やその View が持つ UILabel の frame を触っていたりしていました。これだと、想定外のタイミングでレイアウトが崩れたり、ViewController 側のコード量がふくれあがってしまいがちであまり良くないと思います。また、autoresizingMask を使うと楽ですが少し込み入ったレイアウトが必要になってくると autoresizingMask では対応できなくなってしまいます。そこで最近私がよくおこっている方法をご紹介します。
Objective-C では「カテゴリ」という仕組みを使って既存のクラスに新しいメソッドを付け加えることができます。自分で作ったクラスでもシステムが提供しているものでも付け加えることができますのでカテゴリを活用した例を紹介します。
製品版には必要ないけれど、開発中にあると便利な設定項目を再ビルドなしで変更したいというシチュエーションが開発をしているとあるかと思います。そんなときに何か方法はないかと思い試してみた方法をご紹介します。
例: データ参照先(URL、Local 等)の切り替え、ランダムにわざとなんらかの動作が失敗するような仕込みの On/Off
アプリによってはユーザーの入力値をバリデーションする必要がある場合があります。今回はバリデーションを行うタイミングについて書きたいと思います。
今回は以下のようなアカウント情報入力画面を考えてみます。
- UITextField が画面に表示されている
- NavigationBar には「保存」ボタンが設置されている
- 入力値が「カラ」もしくは「空白文字」以外の場合を正常な入力とする
- UITextField への入力値が不正な値の場合には「保存」ボタンを無効化する
先週の荻野のブログエントリではアプリケーション上の各要素間の間隔について書かれていました。デザイナが導き出した各要素間の間隔を限りなく忠実にコーディングするための助けとなるツールを紹介したいと思います。
xScope
アプリがクラッシュする原因はさまざまです。その中でも、解放(dealloc)済みオブジェクトへのアクセス (EXC_BAD_ACCESS) によるクラッシュの原因としてありがちなイージーミスを2つ挙げてみます。
インスタンス変数に autorelease なオブジェクトをそのまま代入
インスタンス変数は通常そのクラスのインスタンスがオーナーシップを持つ必要があります。この場合の典型的な書き方として次の2つが挙げられます。
- retain で宣言されているプロパティ経由でオブジェクトを代入する場合(self.button = aButton;)
- インスタンス変数に代入するときに retain 等 retainCount を増やすメッセージを送っておく場合(button = [aButton retain];)
この2つの書き方が混在していると次のような間違いが起こりがちです。