タグ

ブックマーク / www.toyship.org (12)

  • if let の変数名 - Toyship.org

    SwiftでOptional値をunwrapするときに一番使う if let 構文。 そのときの変数名の扱いについてみなさんはどうしているでしょうか。 if let Swiftで導入されたOptional、このOptional変数をOptionalではない変数にする unwrap 処理として一般的なのが if let 構文です。 下記のコードでは、aはInt?型なのでIntまたはnilが入っているので、実際にこのなかの値を判定する時には、if let構文でunwrapする必要があります。 let a : Int? // (change a value) if let b = a { print("a : \(a)") print("b : \(b)") } 上記のようにif letすると、 a はInt?型、bはInt型となり、aをunwrapしたものがbとなりますね。 さて、この場合、み

    if let の変数名 - Toyship.org
  • Xcodeコメントの基本 - Toyship.org

    これはiOS Advent Calendar 2014の12日目の記事です。 年の瀬もだんだん押しせまってきました。 年末年始のお休みの後に、「あれ、このメソッドどんな目的で作ったんだっけ?こっちのメソッドとの関係はどうだったんだっけ……」など無駄に悩まないために、このあたりでソースコードのコメントを見直してみましょう。 Xcodeでのコメント そもそもソースコードにコメントを書いた方がいいかどうかは長い議論がありまして……。 コメントによりコードの理解は深まるので、あったほうがいいという意見もありますが、コメントを書いたあとにコードを変更してしまうと、コメントとコードの内容が違ってしまい、かえってバグを生んでしまうためコメントを強制するのは害悪だ、という考え方もあります。 また、適切な命名規則を守ればソースコードを読むだけで理解できるという考え方もあります。 実際には、プロジェクトのライ

    Xcodeコメントの基本 - Toyship.org
  • 新しいTestFlightを使ってみました - Toyship.org

    TestFlightがAppleに買収されて iTunes Connectから使えるようになりました。 さっそく使ってみましたが、いままでのTestFlightにくらべて予想以上に楽になっています。 すべてのDeveloperがいますぐ使い始めるべきレベルなので、ぜひつかってみることをおすすめします。 いままでのTestFlightとの違い 以前からTestFlightでのアプリの配布はできましたが、買収される前とされたあとでかわった内容を簡単にまとめるとこんな感じです。 テスターがテストに参加するのが楽。 開発者がテスターを登録するのが楽。 App Storeへの審査用Submitと同時に行うことができるのが楽。 今まではTestFlightにテスターを登録するのに、それぞれのiPhoneのUDIDを集めて、それを登録する必要があり、開発者、テスターともにかなりめんどくさかったんですよね

    新しいTestFlightを使ってみました - Toyship.org
  • iOSでURLエンコード - Toyship.org

    iOSでネットワークプログラミングをする上でかかせない、URLエンコーディング。 なんだか気になる動作もあるので、ちょっとまとめてみました。 URLエンコードとは URLエンコード(URL encode)とは、文字列をhttp://www.apple.com/からhttp%3A%2F%2Fwww.apple.com%2Fのように変換することです。 URLエンコーディング(URL encoding)、パーセントエンコーディング (%-Encoding)とよばれることもあります。 (逆の変換はURLデコード(URL decode)とよばれます。) なぜ URLエンコードをしなくてはいけないのかというと、URLで使える文字が決まっているからです。 変換方法についてはRFCで決められています。 URLエンコーディングの歴史 URLエンコーディングに関連するRFCはいくつかあるんですが、主なものはこ

    iOSでURLエンコード - Toyship.org
  • App Groupでアプリ間データ共有 - Toyship.org

    そろそろiOS8の正式なリリースも間近になってきましたね。 iOS8のリリースと同時に、新しいアプリ間情報共有機能、 App Groupが使えるようになります。 iOS8 の新機能、App Extension にも必須な機能なので、使い方をちょっとまとめてみました。 App Groupとは App Groupとは、複数のアプリの間でデータを共有できるようになる新しい機能です。 今までも Keychainの仕組みを使うことでアプリ間のデータ共有はできました。 でもKeychainの使い方ってちょっとめんどうだったり、機種変更したときにデータが復元されないこともあったり、あまり使い勝手がよくないところもありますよね。 App Groupを使うと、今までと同じNSUserDefaultsなどを利用してデータ共有をすることができます。 また、App Extensionではこの仕組みを使うとアプリと

    App Groupでアプリ間データ共有 - Toyship.org
  • AVSpeechSynthesizer による音声読み上げ - Toyship.org

    iOS7からAPIが公開された音声読み上げ機能。 これを使うと、アプリに読み上げ機能をつけることができます。 メールを読んだり、ニュースを読んだりしてくれるアプリもできるかも。 ……と期待して、ちょっと使い方をまとめてみました。 (iOS7.0.2、Xcode5.0、iPhone 5sで動作確認しています。) 基的な使い方 まずは、文章を設定して読ませてみましょう。 最初にプロジェクトにAVFoundationをリンクします。 それから、適当な場所で AVFoundation/AVFoundation.h をimportしてください。 そして、AVSpeechSynthesizerをちょこちょこっといじってみます。 // AVSpeechSynthesizerを初期化する。 AVSpeechSynthesizer* speechSynthesizer = [[AVSpeechSynthe

    AVSpeechSynthesizer による音声読み上げ - Toyship.org
  • XcodeでBotを設定する - Toyship.org

    Xcode5の新しい機能として、 Botという継続的インテグレーションツールが導入されました。 アプリ開発時に、ソースコードを書く以外の部分を担当してくれる、たよりになるツールです。 自動的にビルド・テスト・リリースまでしてくれるので、ちょっと楽に開発を進められるようになるかもしれません。 継続的インテグレーションツール(CIツール)としてはJenkinsが広く使われていますが、BotにはJenkinsとほぼ同様の機能があり、さらにiOS/Macアプリに特化した機能が追加されています。 今Jenkinsを使っている人も一回試してみてはいかがでしょうか。 なお、詳しい公式資料はこちらです。 Xcode Continuous Integration Guide Botの主な機能 Botには、主にこんな機能があります。 自動ビルド インテグレーション詳細情報の表示 BigScreenによるコクピ

    XcodeでBotを設定する - Toyship.org
  • Botプロジェクトの設定(他サーバー上) - Toyship.org

    Botエントリシリーズの4つ目です。 Botの概要を知りたい方はXcodeでBotを設定するから、サーバー設定を知りたい方はBotのサーバー設定から読んでみてください。 このエントリでは、GithubにおいてあるプロジェクトをBotで自動インテグレーションする場合の設定を説明しています。 gitリポジトリの作成 各自GitHubにリポジトリを作ってください。 作るのが面倒くさい方は、私が作ったStoryTellerサンプルが既にBot用の設定になっているので、それで試してみてください。 スキーマのshare Botプロジェクトの設定(自サーバーのgitリポジトリ)と同様に、スキーマのshareをonにしてください。 (StoryTellerサンプルはすでにshareがonになっているので変更する必要はありません。) Xcodeサーバー上でリポジトリを追加 次に、OS X Serverサーバ

    Botプロジェクトの設定(他サーバー上) - Toyship.org
  • カテゴリーとクラスエクステンション - Toyship.org

    カテゴリーとクラスエクステンションは、Objective-Cで使えるクラス拡張の方法です。 既存のクラスにメソッドを追加したりクラスの分割をしたりすることができるので、中級以上のObjective-Cユーザーには必須の機能です。 カテゴリーによるメソッド追加 カテゴリーを使うと、既存のクラスにメソッドを追加することができます。 自分でつくったクラスにメソッド追加することもできますし、システムのフレームワークの中のクラスに追加することもできます。 例えば、NSStringクラスに二つの新しいメソッドを付け加えた例を見てみましょう。 まず、追加メソッドのヘッダーファイルはこうなります。 // NSString+ToyshipMode.h @interface NSString (ToyshipMode) + (void)ToyshipMode1; - (void)ToyshipMode2; @

    カテゴリーとクラスエクステンション - Toyship.org
  • iOS6で大きく変わったアプリ間データ共有 - Toyship.org

    先日、「iOS6でAndroidのインテントっぽいものができたって聞いたんですけど、ほんとですか?」と聞かれました。 うーん、聞きたいことはわかるんだけど、ちょっと違うんですよね。 ……というわけで、Xcodeでの設定方法もだいぶ前と変わったし、iOSの現時点でのアプリ間ファイル共有についてまとめてみました。 iOS6で大きく変化したところは…… まず、iOS6で大きく変わったのは次の二つです。 UIDocumentInteractionControllerを使った共有が、機能も見た目も大幅に進化したこと UIActivityViewControllerを使った共有ができるようになったこと それぞれ変更内容がいろいろあるので、三つにわけて書いてみました。 その1:OpenURLを使ったデータ共有 その2:UIDocumentInteractionControllerを使ったデータ共有 その

    iOS6で大きく変わったアプリ間データ共有 - Toyship.org
  • UIDocumentInteractionControllerを使ったデータ共有 - Toyship.org

    iOSアプリでUIDocumentInteractionControllerを使うと、他のアプリに画像ファイルやpdfファイルなどを送信することができます。 かなり古く(iOS3.2)から使える便利な機能なんですが、なぜかそれほど一般的ではないんですよね。 iOS5までとiOS6以降でだいぶ見た目がかわったので、まとめてみました。 iOS6でのUIDocumentInteractionController 実装方法はiOS6でもiOS5以前でも変わらないんですが、見た目はiOS6でがらっと変わりました。 iOS5までの見た目はこちら。 不透明なボードの上にシンプルなボタンが並びます。実直なUIですね。 iOS6での見た目はこちらです。 iOS6ではアイコンベースとなり、UIActivityViewControllerと同様の見た目になりました。 以前と比較すると、ベースのシートが半透明とな

    UIDocumentInteractionControllerを使ったデータ共有 - Toyship.org
  • 新審査基準、PIE Binary とは - Toyship.org

    どうやら、この2、3ヶ月の間に、Appleの審査基準にまた新しい項目が追加されたようです。 古いアプリを修正してリリースする方は注意してくださいね。 (最近新規プロジェクトを作成してビルドをした方はたぶん大丈夫だと思います。デフォルトの設定ではPIE Binaryになっているはずです。) 2013/9/11追記:今日発表になったiPhone 5sのA7チップは、いままでのiPhoneで採用されていた32bitではなく64bitです。64bitのiOSでは、non PIE binaryはサポートされないという情報がAppleからでているので、iPhone 5sで動作させたい場合にはPIE Binary対応が必要です。 Reject with Non-PIE Binary 今年の5月頃からApp Storeで下記のような理由でRejectされるアプリが出てきました。 *1 *2 Non-PIE

    新審査基準、PIE Binary とは - Toyship.org
  • 1