タグ

ブックマーク / qiita.com/mono0926 (17)

  • URLスキーム・独自ディープリンク実装に代わる、Universal Links(iOS 9で導入)でより良いUXを実現 - Qiita

    URLスキーム・独自ディープリンク実装に代わる、Universal Links(iOS 9で導入)でより良いUXを実現iPhoneWWDCsearchapiiOS9UniversalLinks iOS 9で、Universal Linksという仕組みが導入されます。 WWDC資料: Seamless Linking to Your App - WWDC 2015 - Videos - Apple Developer これまでのURLスキーム・独自ディープリンク実装と機能的に似ていますが、それがAPIとして公式にサポートされ、より良いUXが提供出来るようになる模様です。 Search API(特にWeb Markup API)と同時にiOS 9対応に向けてWeb側で是非対応検討しておいた方が良い事項だと思っています: searchapi - iOS 9の「Search API Best Pr

    URLスキーム・独自ディープリンク実装に代わる、Universal Links(iOS 9で導入)でより良いUXを実現 - Qiita
  • Apple App Storeへのレビューに対して返信できるようになりました🎉 - Qiita

    タイトル通りで、詳しくはこちらのApple公式ドキュメントに載っています: Monitoring Reviews on the App Store Responding to Reviews on the App Store - Apple Developer Ratings, Reviews, and Responses - App Store - Apple Developer 少し前からプレリリース版のドキュメントとして公開されていましたが、今朝のiOS 10.3リリースのタイミングで、iTunes Connect上で実際に操作できるようになり、かつドキュメントも正式版になりました。 ちなみに、リリース日は25日にTweetした予想が当たりました( ´・‿・`) iOS 10.3は3/28に正式リリースな気がする👃 — 🐶ブレス オブ ザ イッヌ🐶 (@_mono) March

    Apple App Storeへのレビューに対して返信できるようになりました🎉 - Qiita
  • Swift 3 以降の NotificationCenter の正しい使い方 - Qiita

    Swift 3 で NotificationCenter(旧 NSNotificationCenter ) がせっかく改良されたのに、そのメリットが活かされないようなコード例をよく見かけるので、正しい使い方をまとめます。 以下、主にSwift 2時代のコードを3でどうベターに書けるようになったのかという視点メインでの記述となっています。 次の class を用意して、それをもとに説明していきます(struct は自身を登録できないので class で説明)。 class NotificationObserver { func addObserver() { // A: ここに NotificationCenter 通知登録処理を書く } func removeObserver() { // B: ここに NotificationCenter 通知解除処理を書く } /** C: 今回、通知

    Swift 3 以降の NotificationCenter の正しい使い方 - Qiita
  • Swift 3.1 を先取り👀 - Qiita

    【追記】 記事 + α の内容を以下で丁寧にまとめました(一部記事のみに記載されている内容もありますが)。 Swift 3.1のリリースプロセスおよびそれに含まれる変更内容の紹介(前編) - Build Insider Swift 3.1のリリースプロセスおよびそれに含まれる変更内容の紹介(後編) - Build Insider そろそろ、Swift 3.1 のことも気になってくる頃かなと思って、それについて書いてみます。 Swift 3.1 で予定されている変更点(現時点) 現在実装済みの主な変更点は、Swift 3.1 の CHANGELOG に記載されています。 現時点では、以下の3点が記載されています。 SR-1446: Nested generics SR-1009: Add methods to an Array containing a specific type SE-

    Swift 3.1 を先取り👀 - Qiita
  • Swift Package Manager (SwiftPM) で作るコマンドラインツール - Qiita

    Swift 3でSwift体も安定してきて、Swift Package Manager (SwiftPM) もライブラリ配布・コマンドラインツール作成などには充分使える状態だと思っています。 ただ、SwiftPM を使ってコマンドラインツールを作るまとまった説明があまり出回っていなくて、その意味で少し敷居が高いかな?と思ったので一通りの手順を書いてみます。 コマンドラインツールのお題 説明のためのサンプルとして、MonoGeneratorを作りました。 $ MonoGenerator おはようございます → おはようございます( ´・‿・`) $ MonoGenerator おはようございます --suffix (`・ω・´) → おはようございます(`・ω・´) $ MonoGenerator おはようございます --suffix (`・ω・´) --length 10 → おはようご

    Swift Package Manager (SwiftPM) で作るコマンドラインツール - Qiita
  • Swiftのつらみ Q&A - Qiita

    Swiftの激しい変更への追従がつらいという意見をちょくちょく目にします。 確かにSwift 1正式リリースから2年経ったSwift 3でかなりの変更が盛り込まれて、その対応が大変というのは分かるものの、それはSwiftを利用する上での必要なコストであると感じつつ付き合っていました。 Swift 3まではこの辛さは妥当、そしてそれ以降はその辛さも激減する、と思っています。 以下、何か思うことがあれば随時追記していくかもです。 「Swift 3 対応つらい」 Swift 3で、言語仕様の安定度的にはようやく所謂1.0レベルという印象 何となく空気読んだり、これまでの変更の激しさ、Swift Evolutionリポジトリなど追うと、言語として今どのくらいのフェーズか把握出来るものの、一応1.0として正式リリースされて、さらに2年経った今でも変更追従コストが大きいことに不満生じるのは分かる Sw

    Swiftのつらみ Q&A - Qiita
  • Swift 3での同期処理(排他制御)の基本 - Qiita

    以前、以下の呟きをしましたが、わりと古い方法を利用しているコードが散見されるので、Swift 3での同期処理(排他制御)についてまとめてみます。 getterはsyncでSwiftぽいロックになってて良いけど( ´・‿・`)https://t.co/X2OrjyBmH7 で、Foundation.Lockを使わずにDispatchQueue.sync使おうという話があった。 https://t.co/77zzkNUGLj — mono( ´・‿・`)🐶🍎📱⌚️ (@_mono) August 7, 2016 参考: Concurrent Programming With GCD in Swift 3 - WWDC 2016 - Videos - Apple Developer かつての方法 WWDCスライドのpp.120-123に載っているのでご覧ください。 WWDCで勧められていた

    Swift 3での同期処理(排他制御)の基本 - Qiita
  • 「Swiftのこれまでの動向のまとめと今後のさらなる発展の期待」フォローアップ - iOSDC 2016 - Qiita

    iOSDC 2016にて発表してきまして、そのフォローアップ記事です( ´・‿・`) 発表直後に、こちらのMedium記事も書きました。 iOSDCで発表してきました「Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待」 - Medium (公式ロゴをごにょごにょして作った改変ロゴ(問題あれば消します)) 発表内容 タイトル通り、Swiftのこれまでと今後について、15分で俯瞰出来る内容だったと思います。 こちらがスライドです: 発表動画は https://youtu.be/hkaX4274N9w?t=4h57m44s で見られます。 自作のLINEクリエイターズスタンプを駆使しています( ´・‿・`) スライドの犬(ラヴさん)は、LINEクリエイターズスタンプになっているので、ポチっていただけるととても喜びます🙇 がんばって40種類描きました( ´・‿・`) #iosdch

    「Swiftのこれまでの動向のまとめと今後のさらなる発展の期待」フォローアップ - iOSDC 2016 - Qiita
  • Swift 3の開発の振り返りとSwift 4の計画が記されたメールの紹介 - Qiita

    2016年7月29日に流れてきた[swift-evolution] Looking back on Swift 3 and ahead to Swift 4というメーリングリストの内容が興味深かったので、ざっと訳してみました。 Swift 3はオープンソース化されてから初のメジャーアップデートですが、それがどうであったかの振り返り(正式版リリースはまだされていなくて9月頃と見られています)や、次のバージョンであるSwift 4に向けてどのように開発していくのかが詳細に述べられています Swift開発がオープンソースとしてとても良い感じに進められていて今後とも期待に持てる言語であることや、今後の方向性など知ってもらいたくて日語記事にしました。 初めはこの呟き & ざっと眺める程度で良いかなと思ってましたが、メモしながら注意深く読むうちに展開したいなと思ってきて、こういう形にしました。 Sw

    Swift 3の開発の振り返りとSwift 4の計画が記されたメールの紹介 - Qiita
  • Swift API Design Guidelinesの紹介(Swift 3版) - Qiita

    Swift.org - API Design Guidelinesを読みながら日語で書き起こしてみました。 (全訳では無く、また一部意訳など混ざっています。) API Design Gudelinesということで、例えばアプリ実装の特に画面側のコード書く際にはあまり気にしなくても良い気がするものも少し混ざっている気がしました。 原文に豊富にあるコード例はほとんど省いたので、適宜原文見た方が分かりやすいかと思います。 基 用途が明確なこと 用途が明確なことは、最も重要なゴール。コードは書かれるより読まれることの方がずっと多い。 明確さは簡潔さより重要 短いコードを追い求め過ぎて、可読性など損なうのは良くない。 ドキュメンテーションコメントを書きましょう すべての定義にはドキュメンテーションコメントを書きましょう。 (訳注: 処理に添えるコメントではなくクラス・メソッド・フィールド定義など

    Swift API Design Guidelinesの紹介(Swift 3版) - Qiita
  • Courseraの機械学習コースのススメ 前編 - Qiita

    大晦日・お正月2日と、Courseraの機械学習コースに取り組んで全11週のうち3週目まで終えたので、振り返りつつオススメしてみます。 経緯 こんな記事を投稿したら、 2015年振り返り 反省 機械学習周りを(再)学習 → オーディオブックで「人工知能は人間を超えるか」を聴いて良書っぷりに感動した程度 @koher さんからCourseraの機械学習コースを勧めていただき、ちょうどまとまった時間確保出来るタイミングだったので取り組んでみました。 @_mono おそらくご存知だとは思いますが、機械学習は Coursera の Machine Learning のコース(日語字幕あり)がとても良かったですよ。もっと高度な内容を勉強されたいということかもですが。 https://t.co/1d3VM9hbwg — koher (@koher) December 30, 2015 今期の開講期間

    Courseraの機械学習コースのススメ 前編 - Qiita
  • 今年読んだSwift関連の良記事7選 - Qiita

    Advent Calendarに空きがあって完走の危機だったので、今年読んだSwift周りで良かった記事(資料)7選を一言コメント付きでご紹介します。 せっかくなので、Qiita以外から選びます( ´・‿・`) Swiftオープンソース化の衝撃 - Hatena Developer Blog 今月オープンソースとして公開されたことや、Swift 3についてとてもよくまとまっています。 RxSwift/Rx.playground 記事じゃ無いですが( ´・‿・`) 11月くらいにReactiveX/RxSwiftへの乗り換え(それまではReactKit/SwiftTaskでそれも良かったです)をしたのですが、このPlaygroundがReactive Extensionsの理解にとても役立ちました。 以前C#メインだったときも少しかじってたものの、今いち理解出来ていないところがあったのですが

    今年読んだSwift関連の良記事7選 - Qiita
  • iOS 9の新しいWebビュー: SFSafariViewController - Qiita

    【追記】SFSafariViewControllerが出た当初は記事のようにほぼカスタマイズ性が無かったですが、元々のコンセプトはブレない範囲で少しずつカスタマイズ性が提供されています。 こちらなどご覧ください: What's New in Safari View Controller - WWDC 2017 - Videos - Apple Developer 以下、iOS 9 SDK時点での SFSafariViewController についてです。 UIWebView・iOS 8で追加されたWKWebViewに加えて、iOS 9ではSFSafariViewController というものが追加されました。 手軽なAPIなので、今作っているPlayer!にもちょちょいと組み込めそうです( ´・‿・`) ※ 記事は Apple による公開ドキュメントを元に構成しています SFSaf

    iOS 9の新しいWebビュー: SFSafariViewController - Qiita
  • ローディング時のズルい進捗表示

    今開発中のPlayer!のログイン・登録画面で、こんな進捗表示をしていますが、これ実はフェイクだったりします( ´・‿・`) (Qiitaの画像サイズ制限が厳しくて粗いです。キレイなものは実際にアプリダウンロードしてご覧下さい。) 経緯 元々、この画面はこういう進捗表示では無く、単にインジケーターがクルクルするだけで、進捗状態が分からないものでした。 特にネットワークが悪いところだと、バグって固まってしまったのでは?とユーザーを不安にさせるようで、たまにそういう声を聞くことがありました。 登録フローは大事なところなので、そういうところでこれが原因で離脱してしまうと残念なので、改善が必要でした。 そこで、ネットワーク処理にもたつきつつもちゃんと正常に処理をしているということを示すために、進捗を表示することにしました。 ただ、例えば大きな画像などメディアファイルダウンロードなどならともかく、こ

    ローディング時のズルい進捗表示
  • iOSのPUSH通知(APNS)の特徴・ノウハウまとめ(iOS 9まで対応) - Qiita

    今開発しているPlayer!で、チャット系のリアルタイム更新処理が必要となったので、色々調べながらまとめています。 分量が多いので、とりあえずまずは小出しにAppleのPUSH通知の特徴・ノウハウについてまとめたものを公開します。 → 「リアルタイム更新処理」全体にフォーカスした記事も書きましたヽ(・ω・`) iOS - チャットなどリアルタイム更新が必要なスマフォアプリの構成について考えてみた - Qiita アプリが終了状態になっていてもサーバーから通知出来る唯一の手段 まず当たり前のことからですが、最大の特長だと思います。 この理由によって、双方向通信などを併用するにしてもPUSH通知対応は必須です。 (サーバー経由でなければ、位置情報トリガーなど他にもいくつか終了状態から起こす方法は存在します。) ユーザーにPUSH通知を不許可にされたら届かない さらに、初回の確認で不許可にされた

    iOSのPUSH通知(APNS)の特徴・ノウハウまとめ(iOS 9まで対応) - Qiita
  • Swift実行ファイルを逆アセンブルして、最適化具合を正確に把握する方法 - Qiita

    SwiftはOptimization Levelによって顕著にパフォーマンスに差が出ます。 参考: Apples to apples, Part II · Jesse Squires また、Dynamic Dispatchでの呼び出しもオーバーヘッドになります。 参考: Swiftのfinal・private・Whole Module Optimizationを理解しDynamic Dispatchを減らして、パフォーマンスを向上する - Qiita ドキュメントなど読み解けば「どういう記述をすればどうコンパイルされるか」は大体予測付きますが、やはり実際にその予測通りになっているかは確認しておきたい時があります。 特にロガーなどグローバルに呼び出されるものの場合、そういう確認大事だと思っています。 (この記事もロガーの検証が元々の目的で、そのために調べてまとめています。ロガーについても記事

    Swift実行ファイルを逆アセンブルして、最適化具合を正確に把握する方法 - Qiita
  • Swiftのfinal・private・Whole Module Optimizationを理解しDynamic Dispatchを減らして、パフォーマンスを向上する - Qiita

    Swiftのfinal・private・Whole Module Optimizationを理解しDynamic Dispatchを減らして、パフォーマンスを向上するiOS最適化Swiftパフォーマンス 追記(2016/10/23) SE-0117: Allow distinguishing between public access and public overridabilityでpublicの意味が少し変わって、openも登場した関係で、記事中のコードはSwift 3では少し変更必要そうです。 finalがデフォルトになったので指定不要になった オーバーライド可能にするにはopenを明示が必要になった(これまではデフォルトopen状態だった) デフォルトでDynamic Dispatchが発生しにくくなった感じです。 表面上の書き方は少し変わりましたが、質は変わりません。 少し

    Swiftのfinal・private・Whole Module Optimizationを理解しDynamic Dispatchを減らして、パフォーマンスを向上する - Qiita
  • 1