タグ

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

  • NearbyInteractionで周囲の端末の位置を測定する - Toyship.org

    NearbyInteractionとはiOS14で導入された新しいフレームワークです。 近距離無線チップを使い、複数の端末の距離や方向を測定することができます。 UWB UWBとは、iPhone 11で導入されていた近距離無線チップです。 何に使われているのかよくわからず、売りにしているんだかどうだか、いまいちわからない機能です。 (対応端末を持っている人が近くにいるとAirDropのときに優先的に表示されるそうんだけど、私は実感できたことはないですね……。) share with UWB 使用可能な端末 このフレームワークは、UWBチップがのっている端末どうしでだけ使えます。 UWBチップは、現状では iPhone 11、iPhone 11 Pro、iPhone 11 Pro Max の3モデルのみに搭載されています。 この端末が複数ないと動作を試すこともできないのですが、そのあたりのこ

    NearbyInteractionで周囲の端末の位置を測定する - Toyship.org
  • iOS11で変わったロケール - Toyship.org

    これはiOSアドベントカレンダーの2日目の記事です。 毎年アドベントカレンダーでは、カレンダーに関係あることを書くことにしています。 今回はiOS11で仕様変更があったロケールについて。 ロケールとは iPhoneの設定に、「言語と地域」という項目があります。 ここでは、表示に使われる言語を設定することができますが、 この「地域」で設定される項目がロケールです。 このようにすると、現在設定されている言語とロケールを取得することができます。 let language = NSLocale.preferredLanguages print("languages:\(language)") let locale = NSLocale.current print("locale:\(locale)") ロケールを変えるとなにが変わるのか さて、このロケールを変えると、ユーザーから見てなにが変わるの

    iOS11で変わったロケール - Toyship.org
  • iOS9のコンテンツブロッカー - Toyship.org

    WWDCで新しいiOS9の機能がいろいろと発表されましたが、Safariでの表示項目を制限することが 「コンテンツブロッカー」機能については、Web業界の方はちょっと気になるのではないでしょうか。 さっそく調べてみました。 (なお、この記事はAppleが一般に公開している情報を元に書いています) コンテンツブロッカー コンテンツブロッカーとはiOSやMacでSafariに表示する項目を、自動的に制限してくれる機能です。 iOSでは、コンテンツブロッカーは、Today WidgetやShare ExtensionのようにApp Extensionとして提供されます。 Mobile Safariでwebを見る時に、cssで指定された特定の要素を非表示にしたり、特定のファイルを読み込まないようにすることができます。 Safari以外のブラウザ(Chromeなど)には影響がありません。 また、iO

    iOS9のコンテンツブロッカー - Toyship.org
  • Objective-C オブジェクト間通信のパターン - Toyship.org

    この記事は、Tech Women Advent Calendar 2014の17日目の記事です。 基ですが、あらためてiOS開発でのオブジェクト間通信についてまとめてみました。 オブジェクト間通信 Objective-Cでソースコードを書いているときに、オブジェクト同士で通信を行う必要は頻繁に発生します。 通信元のオブジェクトが通信先のポインタを持っている場合もあるし、ない場合もあるし。 通信元、通信先のどちらのオブジェクトも動的に生成されたり消えたりするし。 複数の相手に通信したい場合もあるし、一つだけでいい場合もあるし。 いろいろな状況に応じてこのオブジェクト間通信を使い分ける必要が有ります。 「呼び出し元」と「呼び出し先」だとわかりにくいので、AliceがBobやCarolをよぶ、(AliceからBobやCarolにメッセージを送る)としてみましょう。 Target-Action

    Objective-C オブジェクト間通信のパターン - Toyship.org
  • 日付が変わったときの処理 - Toyship.org

    カレンダーなどのアプリで、画面に今日の日付などを表示している場合、真夜中に日付が変わった瞬間にUI表示を変えたりなどの処理をしたいことがありますよね。 そのためだけにNSTimerなどを使ってタイマー処理をするのも面倒くさいので、たいていはスルーしていると思うんですが。 実はそんな時に使える便利な機能があります。 UIApplicationDelegateで、applicationSignificantTimeChangeをオーバーライドしておけば、日付が変わった瞬間にこの関数が呼ばれて、UI変更の処理をすることができます。 - (void)applicationSignificantTimeChange:(UIApplication *)application{ NSLog(@"日付の表示を変えてください。"); } こんな時によばれるので、日時を扱うアプリでは、実装しておくのがお勧めで

    日付が変わったときの処理 - 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
  • Objective-CのSingleton、その歴史的経緯など - Toyship.org

    Objective-Cのシングルトンって、昔はcopyWithZoneとかもあって、無駄に面倒だったような記憶があるんだけど、いつの間にか簡単になったんだっけ……?と思ってたので、ちょっと整理してみました。 ARCとGCDが出る前からシングルトンを実装してた人にはちょっと懐かしい話かもしれません。 Singletonとは 改めて説明するまでもないですが、シングルトンとはプロセス内のどこからよんでも同じオブジェクトにアクセスできるようにするデザインパターンです。 どのプログラミング言語においても重要なデザインパターンです。 iOSのシステムフレークワークでもよく使われており、 などはおなじみですよね。 上のメソッドは何回呼んでも同じオブジェクトがかえるようになっているので、いつでも同じオブジェクトに対して処理をすることができます。 自分で実装しなくても、ほとんどの人はシングルトンパターンを使

    Objective-CのSingleton、その歴史的経緯など - Toyship.org
  • Xcode の Quick Look で艦娘をデバッグする - Toyship.org

    Xcode 5から導入された、デバッグ時の Quick Look機能、デバッグ時にオブジェクトの情報をグラフィカルに見ることができてとっても便利ですよね。 Xcode 5.1からは、システムクラスに加えて、カスタムクラスのQuick Look機能も使えるようになっているので、さっそく使ってみました。 普通の Quick Look 普通のってなんだよって感じですが、いわゆる、組み込みのシステムクラスのQuick Look。 何も特別な設定をしなくても使えるQuick Lookです。 使い方は簡単。 オブジェクトの上にマウスオーバーすると、ツールチップのような小さいダイアログが表示されます。 そのツールチップの上の、「目」のように見えるアイコンをクリックします。 すると、こんな感じでオブジェクトの中身がグラフィカルに見れるようになります。 なお、iOSのシステムクラスで Quick Lookに

    Xcode の Quick Look で艦娘をデバッグする - Toyship.org
  • 複数の App ID Prefixとキーチェーンについて - Toyship.org

    先日、Appleから「複数のApp ID Prefixについて」(Technical Note TN2311:Managing Multiple App ID Prefixes)というTechnical Noteが出ていました。 ふだんあまり意識することのない App ID Prefixですが、使い方を間違うとキーチェーンに保存されたデータを消してしまうこともあるんです。 古参の iOS Developerと、キーチェーンを使ってる Developerは要確認です。 App ID Prefixとは何か App IDは、App ID PrefixとBundle Identifierの二つの部分にわかれています。 App ID PrefixがABCDE12345でBundle Identifierがorg.toyship.testappなら、App IDはABCDE12345.org.toys

    複数の App ID Prefixとキーチェーンについて - 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
  • 新審査基準、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
  • iOS6で大きく変わったアプリ間データ共有 - Toyship.org

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

    iOS6で大きく変わったアプリ間データ共有 - Toyship.org
    s_ryuuki
    s_ryuuki 2012/09/30
    アプリケーション連携
  • アプリのiPhone5対応 - Toyship.org

    今までのアプリをiPhone5の640x1136の縦長画面に対応させるために私がやったことのメモです。 (たぶんこれで大丈夫だと思うんですけど、何か問題があったら追記します。) iPhone5画面サイズ対応 まず、アプリをiPhone5の640x1136サイズで起動するには、プロジェクトにこの画像ファイルを追加すること。(もちろん画像サイズは640x1136) Default-568h@2x.png 公式書類に一応書いてあるんですが、ちょっと記述がわかりづらいですね。(もうちょっとわかりやすくかいてくれてもいいと思うんですけど。) iOS App Programming Guide(App-Related Resources) 各画面のサイズ変更対応 次に、起動画面以外の各画面をiPhone5/iPhone4の両対応にするための変更です。 まずは、それぞれのxibファイルを開いて、ベースと

    アプリのiPhone5対応 - Toyship.org
  • 1