日付が変わったときの処理

iOS

カレンダーなどのアプリで、画面に今日の日付などを表示している場合、真夜中に日付が変わった瞬間にUI表示を変えたりなどの処理をしたいことがありますよね。 そのためだけにNSTimerなどを使ってタイマー処理をするのも面倒くさいので、たいていはスルーし…

Swift の Embedded Framework と namespace

iOS

Embedded Frameworkを、Swiftで作ると、Objective-Cで作るときとは違った利点がいろいろと見えてきました。 SwiftによるEmbedded Framework Embedded Framework in Objective-Cのエントリで、Objective-CによるEmbedded Frameworkを実装してみましたが、Swif…

Embedded Framework を iOS7 以下で使うには

iOS

iOS8で導入されたEmbedded Framework ですが、iOS7以下で使うにはどうすればいいでしょうか。 iOS7でもEmbedded Frameworkがしたい Objective-C で Embedded Frameworkで実装したEmbedded Frameworkは、iOS8からしか使えません。 でもまだまだiOS7対応も必要…

Objective-C で Embedded Framework

iOS

iOS8から使えるようになったEmbedded Framework。 その使い方と、iOS7 でEmbedded Frameworkを使う方法を調べてみました。 Embedded Frameworkとは Embedded Framworkは、複数のプロセスから利用できる共通ライブラリで、iOSでは、OS8のApp Extensionと同時…

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の準備…