Apple Watchで文字入力

これはWatchKit Advent Calendar 2014の24日目の記事です。 少しずつですが、Apple Watchでの文字入力がやっと試せるようになってきました。 text input controller Apple Watchは画面が小さいので、iPhoneのようなソフトウェアキーボード画面はありません。…

Apple Watchのコントロールメニュー

これはWatchKit Advent Calendar 2014の23日目の記事です。 Apple Watchでは、すべての画面にコントロールメニューをつけることができます。 狭い画面にはボタンもあまり配置できないので、コントロールメニューをうまく使うと有効に使えそうです。 コントロ…

Apple Watchの画面遷移

これはWatchKit Advent Calendar 2014の22日目の記事です。 WKInterfaceControllerの生成 WKInterfaceControllerは、現時点のWatchKitではStoryboard上でしか作ることができません。 iOSのUIViewControllerは、Storyboardやxibを使わなくても、コード上の記…

WKInterfaceControllerの生成など

これはWatchKit Advent Calendar 2014の21日目の記事です。 WKInterfaceControllerとは、Watch Kit で、一画面の描画を担当するコントロールクラスです。 iOSでいえばUIViewControllerにあたるクラスですね。 WKInterfaceController の初期化時の処理 WKInte…

Apple Watchの画面レイアウト

これはWatchKit Advent Calendar 2014の20日目の記事です。 Apple Watchの画面レイアウトはiOSアプリと少し違います。 簡単にまとめてみました。 Apple Watchの画面レイアウト Apple Watchでは、画面に様々な画面パーツを置くことができます。 ただ、iOSと大…

WatchKit で Table を表示する

これはWatchKit Advent Calendar 2014の19日目の記事です。 WatchKitではいろいろなUIコントロールが表示できますが、ここではTableを表示してみましょう。 テーブル用クラスの作成 WatchKitでテーブルを表示する場合は、UITableViewではなくWKInterfaceTabl…

Objective-C オブジェクト間通信のパターン

iOS

この記事は、Tech Women Advent Calendar 2014の17日目の記事です。 基本ですが、あらためてiOS開発でのオブジェクト間通信についてまとめてみました。 オブジェクト間通信 Objective-Cでソースコードを書いているときに、オブジェクト同士で通信を行う必要…

バスボタンでビルドしてみました

この記事はVOYAGE GROUP エンジニアブログ Advent Calendar 2014の13日目の記事です。 ちょっと前に、業務用のバスボタンを買ったので、バスボタンを押してiPhoneアプリのビルドができるシステムをつくってみました。 ビルドだけじゃなくて、バスボタンで起…

Xcodeコメントの基本

これはiOS Advent Calendar 2014の12日目の記事です。 年の瀬もだんだん押しせまってきました。 年末年始のお休みの後に、「あれ、このメソッドどんな目的で作ったんだっけ?こっちのメソッドとの関係はどうだったんだっけ……」など無駄に悩まないために、こ…

GitHubとBitbucketで ssh keyを設定する

Git

Git、便利ですよね。 私は個人のGithubアカウントと、業務用のGithubアカウント、あとBitbucketのアカウントを持ってます。 複数のGitアカウントのssh keyをMacで設定するときの作業メモです。 ssh公開鍵認証 GithubもBitbucketもssh公開鍵認証をサポートし…

新しいTestFlightでExternal Test

iOS

新しいTestFlightを使ってみましたでApple Storeのエクスターナルテストのための審査をSubmitしましたが、無事終わりました。 エクスターナルテスト審査 エクスターナルテストを実施するには、Appleのテスト用審査を申し込まないといけません。 その審査が実…

新しいTestFlightを使ってみました

iOS

TestFlightがAppleに買収されて iTunes Connectから使えるようになりました。 さっそく使ってみましたが、いままでのTestFlightにくらべて予想以上に楽になっています。 すべてのDeveloperがいますぐ使い始めるべきレベルなので、ぜひつかってみることをおす…

App Groupでアプリ間データ共有

iOS

そろそろiOS8の正式なリリースも間近になってきましたね。 iOS8のリリースと同時に、新しいアプリ間情報共有機能、 App Groupが使えるようになります。 iOS8 の新機能、App Extension にも必須な機能なので、使い方をちょっとまとめてみました。 App Groupと…

iOSでURLエンコード

iOS

iOSでネットワークプログラミングをする上でかかせない、URLエンコーディング。 なんだか気になる動作もあるので、ちょっとまとめてみました。 URLエンコードとは URLエンコード(URL encode)とは、文字列をhttp://www.apple.com/からhttp%3A%2F%2Fwww.apple.…

App Extension

iOS

CookpadのWWDC2014 振り返り勉強会でApp Extensionについて発表させていただきました。 App Extension App Extensionは個人的にiOS8で一番お気に入りの機能ですが、技術的にはいろいろと深い部分があります。 App Extensionといっても、いろいろな種類のモジ…

NSURLConnectionをサブスレッドで使用する

iOS

iOS7でNSURLSessionがでて、少し陰の薄くなったNSURLConnectionですが、まだまだネットワーク処理の中心としてよく使われていますよね。 NSURLConnectionの使い方は比較的簡単ですが、サブスレッドからよぶときには少し注意が必要なのでまとめてみました。 …

Objective-CのSingleton、その歴史的経緯など

Objective-Cのシングルトンって、昔はcopyWithZoneとかもあって、無駄に面倒だったような記憶があるんだけど、いつの間にか簡単になったんだっけ……?と思ってたので、ちょっと整理してみました。 ARCとGCDが出る前からシングルトンを実装してた人にはちょっ…

Xcode の Quick Look で艦娘をデバッグする

iOS

Xcode 5から導入された、デバッグ時の Quick Look機能、デバッグ時にオブジェクトの情報をグラフィカルに見ることができてとっても便利ですよね。 Xcode 5.1からは、システムクラスに加えて、カスタムクラスのQuick Look機能も使えるようになっているので、…

複数の App ID Prefixとキーチェーンについて

iOS

先日、Appleから「複数のApp ID Prefixについて」(Technical Note TN2311:Managing Multiple App ID Prefixes)というTechnical Noteが出ていました。 ふだんあまり意識することのない App ID Prefixですが、使い方を間違うとキーチェーンに保存されたデー…

室町千代紙

今日は江戸東京博物館に大浮世絵展を見に行ってきました。 ついでに博物館の中にあったお土産屋さんによってみたら、素敵な千代紙があったので買ってきました。

NSCalendar on iOS Advent Calendar 2013

iOS

この投稿は iOS Advent Calendar 2013 - Qiita の25日目の記事です。 今年の iOS Advent Calendarの最後の日に、NSCalendarをとりあげてみますね。 iOSとMacOSXで暦を司る、あまり目立たないですが重要なクラスです。 NSDate さて、NSCalendarの説明をするに…

Xcodeで日本語の変数名が使えるようになりました

iOS

最近はiOS開発現場でもXcode4からXcode5への移行がすすんできました。 Xcode5ではUIも含めていろいろと変わった部分がたくさんありますが、実は日本語変数名が使えるようになっているんですよ。 Xcodeのコンパイラの歴史 Xcodeで使えるコンパイラは、古くはg…

クリスマスっぽいスクリーンキャプチャーにしてみる

iOS

※これはVOYAGE GROUP エンジニアブログ:Advent Calendar 2013の8日目です。 @TachibanaKaoruです。 今日はアドベントカレンダーの記事ということで、ちょっとクリスマスっぽいことをしてみますね。 スクリーンキャプチャーについて iPhoneでは、ホームボタ…

Botプロジェクトの設定(他サーバー上)

Botエントリシリーズの4つ目です。 Botの概要を知りたい方はXcodeでBotを設定するから、サーバー設定を知りたい方はBotのサーバー設定から読んでみてください。 このエントリでは、GithubにおいてあるプロジェクトをBotで自動インテグレーションする場合の…

Botプロジェクトの設定(自サーバー上)

Botエントリシリーズの3つ目です。 Botの概要を知りたい方はXcodeでBotを設定するから、サーバー設定を知りたい方はBotのサーバー設定から読んでみてください。 このエントリでは、Botと同じサーバーにgitリポジトリを作り、それをBotで自動インテグレーシ…

Botのサーバー設定

iOS

Botエントリシリーズの2つ目です。 Botの概要を知りたい方はXcodeでBotを設定するから読んでみてください。 このエントリでは、Botのためのサーバー設定を行います。 Mac OSX Serverのインストールと、Xcodeサーバーの起動・設定をおこないます。 Macの準備…

XcodeでBotを設定する

Xcode5の新しい機能として、 Botという継続的インテグレーションツールが導入されました。 アプリ開発時に、ソースコードを書く以外の部分を担当してくれる、たよりになるツールです。 自動的にビルド・テスト・リリースまでしてくれるので、ちょっと楽に開…

AVSpeechSynthesizer による音声読み上げ

iOS7からAPIが公開された音声読み上げ機能。 これを使うと、アプリに読み上げ機能をつけることができます。 メールを読んだり、ニュースを読んだりしてくれるアプリもできるかも。 ……と期待して、ちょっと使い方をまとめてみました。 (iOS7.0.2、Xcode5.0、i…

カテゴリーとクラスエクステンション

カテゴリーとクラスエクステンションは、Objective-Cで使えるクラス拡張の方法です。 既存のクラスにメソッドを追加したりクラスの分割をしたりすることができるので、中級以上のObjective-Cユーザーには必須の機能です。 カテゴリーによるメソッド追加 カテ…

表示されるテキストによって高さを調整する

iPhoneアプリで画面に複数行の文字を表示するにはUILabelかUITextViewを使います。 そのときに、表示するテキストの長さによってテキスト表示エリアの大きさを変えたいことがあります。 NSStringのメソッドを使う方法、NSAttributedStringのメソッドを使う方…