Developer's Blog

投稿者別アーカイブ(図子)

Watch App の開発時に通知を楽に検証する方法

sample-watch-app-notification

こんにちは。アプリケーション共同開発部 開発担当の図子です。

Apple Watch いいですよね。今もさっそくアクティビティ.app を有効にしたまま、Apple Watch をつけてこの記事を書いています。

Apple Watch に通知が届くには

  • Apple Watch を身につけている
  • iPhone 側が Lock されている

など諸条件があります。これは通常の利用シーンを考えると iPhone と Apple Watch で無駄に重複して通知が溜まらないなど合理的な仕組みだと思います。しかし、Local Notification や APNs を利用した Watch App の開発中にはこれって結構面倒くさいものです。

そこで今回は開発時にもう少し楽に検証できる方法をお伝えします。

続きを読む

Apple Watch 実機でアプリの動作確認をする方法

apple_watch_01

こんにちは。アプリケーション共同開発部 開発担当の図子です。

ついに届きました Apple Watch ! 届いた Apple Watch を拝みつつもささっと Apple Watch を iPhone とペアリングした開発者のあなた。Apple Watch も iPhone と同様にデバイス登録が必要なのです。今までシミュレータでの開発でやきもきしていた気持ちをいち早く解消するために、Apple Watch 実機で動作確認をする方法をご紹介します。

続きを読む

フェンリルプロダクト技術勉強会を開催しました

Fenrir Advent Calendar 2014

こんにちは!
昨日、入社 7 年目を迎えました共同開発部 開発担当の図子です。

Fenrir Advent Calendar 2014 の 5 日目を担当します。

私の「2014 年にグッときたコレ」というか 2014 年に 1 番緊張したのが一昨日弊社で開催された「フェンリルプロダクト技術勉強会」でのプレゼンです。

当日私から発表させていいただいた「iOS アプリのチーム開発における自動化」の内容と「フェンリルプロダクト技術勉強会」の様子をご紹介させていただきます。

続きを読む

【連載】Bluetooth LE (7) CoreBluetooth の落とし穴

こんにちは。共同開発部 門多です。

BLE 連載の第7回は、iOS で CBCentralManager を使った開発において、
はまりやすいと思われるポイントを中心にまとめたいと思います。
本連載の第2回を読まれて、
実際にアプリを作ってみた方には、もしかしたら頷かれるものもあるのではないでしょうか?

以下、個別にみていきましょう。

続きを読む

【連載】Bluetooth LE (2) iOS デバイスで Bluetooth LE 機器を使う

BluetoothLESample

こんにちは。共同開発部 開発担当の図子です。

先週 からはじまりました Bluetooth LE (以降 BLE)の連載。今回は iOS デバイスで BLE 機器と通信できるようにするために簡単なアプリを作って説明していきたいと思います。

続きを読む

“The executable was signed with invalid entitlements.” の対処方法

AdHoc ビルドを作成し、実機に転送できないことがあったのでその解決方法の一つをご紹介します。

続きを読む

【 iOS 開発 Tips】あなたも気付いていないかもしれないメモリリークの恐怖

こんにちは、共同開発部 iOS アプリ開発担当の図子です。

iOS 開発をしている皆さんはメモリリークのチェックを行っていると思います。どのような方法で確認していますか?おそらく以下のような方法で行っていると思います。

・Static Analyzer を使う

・Instruments の Leaks テンプレート

でも、これだけでは見つからないメモリリークが起こりうることをご存じでしょうか?

続きを読む

【 iOS 開発 Tips】View のレイアウトをどうするか?

こんにちは、共同開発部 iOS アプリ開発担当の図子です。

iOS 開発をしている皆さんはどういったタイミングで View のレイアウトをおこなっていますか?私は1年くらい前までは ViewController の viewWillAppar 等のメソッド内や、ViewController から View へ情報をセットするタイミングで ViewController 側から直接 View の frame やその View が持つ UILabel の frame を触っていたりしていました。これだと、想定外のタイミングでレイアウトが崩れたり、ViewController 側のコード量がふくれあがってしまいがちであまり良くないと思います。また、autoresizingMask を使うと楽ですが少し込み入ったレイアウトが必要になってくると autoresizingMask では対応できなくなってしまいます。そこで最近私がよくおこっている方法をご紹介します。

続きを読む

カテゴリを活用する

Objective-C では「カテゴリ」という仕組みを使って既存のクラスに新しいメソッドを付け加えることができます。自分で作ったクラスでもシステムが提供しているものでも付け加えることができますのでカテゴリを活用した例を紹介します。

続きを読む

Settings.bundle でデバッグ向け設定を追加する

製品版には必要ないけれど、開発中にあると便利な設定項目を再ビルドなしで変更したいというシチュエーションが開発をしているとあるかと思います。そんなときに何か方法はないかと思い試してみた方法をご紹介します。

例: データ参照先(URL、Local 等)の切り替え、ランダムにわざとなんらかの動作が失敗するような仕込みの On/Off

続きを読む

UITextField でのバリデーションのタイミング

アプリによってはユーザーの入力値をバリデーションする必要がある場合があります。今回はバリデーションを行うタイミングについて書きたいと思います。

今回は以下のようなアカウント情報入力画面を考えてみます。

  • UITextField が画面に表示されている
  • NavigationBar には「保存」ボタンが設置されている
  • 入力値が「カラ」もしくは「空白文字」以外の場合を正常な入力とする
  • UITextField への入力値が不正な値の場合には「保存」ボタンを無効化する

続きを読む

画面レイアウトを行うときに便利なツール

先週の荻野のブログエントリではアプリケーション上の各要素間の間隔について書かれていました。デザイナが導き出した各要素間の間隔を限りなく忠実にコーディングするための助けとなるツールを紹介したいと思います。

xScope

続きを読む

クラッシュの原因にありがちなイージーミス

アプリがクラッシュする原因はさまざまです。その中でも、解放(dealloc)済みオブジェクトへのアクセス (EXC_BAD_ACCESS) によるクラッシュの原因としてありがちなイージーミスを2つ挙げてみます。

インスタンス変数に autorelease なオブジェクトをそのまま代入

インスタンス変数は通常そのクラスのインスタンスがオーナーシップを持つ必要があります。この場合の典型的な書き方として次の2つが挙げられます。

  • retain で宣言されているプロパティ経由でオブジェクトを代入する場合(self.button = aButton;)
  • インスタンス変数に代入するときに retain 等 retainCount を増やすメッセージを送っておく場合(button = [aButton retain];)

この2つの書き方が混在していると次のような間違いが起こりがちです。

続きを読む

Copyright © 2019 Fenrir Inc. All rights reserved.