*iOSに関するwhitefox_105のブックマーク (43)

  • 【随時更新】iPhoneX完全対応マニュアル - Qiita

    はじめに この記事は既存、もしくは新規で開発するiOSアプリをiPhoneXに対応するための知見をまとめたものです。 新しい情報やTipsをコメントいただけると随時更新させていただきますので、よろしくお願いします! iPhoneXについて 2017年9月12日に開催されたApple Special Eventにて発表された最新のiPhone 顔認証でロック解除ができる「Face ID」を搭載 ベゼルレスディスプレイ 今までのデバイスと違って、四隅が丸くなっていたり、フロントカメラ部分の凹みがディスプレイに被っていたりするので、このようなディスプレイに対応するためにセーフエリアの概念が新しく追加された セーフエリアについて AppleがiOS11から導入した概念 ナビゲーションバーやステータスバーなどの外側のUIに被らない安全な領域を取得できる 使用するにはXcode9+、iOS11+ SD

    【随時更新】iPhoneX完全対応マニュアル - Qiita
  • ☑️ [保存版] Apple審査リジェクト対策チェックリスト - Qiita

    目的 Appleの審査を最速で突破する。 毎回苦戦しているのがバカバカしくなった & 探してみたけど意外と分散していたので、チェックリストを作りました。 アカウント作成し、ユーザーがコンテンツを作るようなアプリを前提にしています。 他に落とし穴・チェックポイントがあれば是非コメント等で教えていただけると助かります。 (Apple審査で苦しむ人を一人でも少なくしたい。) 前提 人事を尽くして天命を待つ(審査の返信は1~3日かかるので、待つのはバカバカしい。考えられるすべての手は打っておくべき) 一度最新版のガイドラインに目を通しておく 動作確認 クラッシュやバグはないか? IPv6環境での動作を確認したか?(IPv6のみのネットワーク での審査について) iPadで動作確認をしたか?(UIAlertController注意) リソースの確認 AppIconやスクリーンショットに不足はないか?

    ☑️ [保存版] Apple審査リジェクト対策チェックリスト - Qiita
  • 使うと手放せなくなるSwift Extension集 (Swift3版) - Qiita

    extension UICollectionView { func register<T: UICollectionViewCell>(cellType: T.Type) { let className = cellType.className let nib = UINib(nibName: className, bundle: nil) register(nib, forCellWithReuseIdentifier: className) } func register<T: UICollectionViewCell>(cellTypes: [T.Type]) { cellTypes.forEach { register(cellType: $0) } } func register<T: UICollectionReusableView>(reusableViewType: T.T

    使うと手放せなくなるSwift Extension集 (Swift3版) - Qiita
  • Switching Environments With Configurations

    whitefox_105
    whitefox_105 2017/10/18
    環境変数の切り替え
  • iOS 11 Webブラウザのユーザーエージェント (Safari, Google Chrome, LINE など) - Qiita

    概要 iOS 11 上で動作する Web ブラウザやアプリ内ブラウザのユーザーエージェント (User-Agent, UA) 文字列を調べてみた。 iPhone 6 + iOS 11.0 で確認したユーザーエージェント文字列 Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 Safari (デスクトップ用サイトを表示) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/10.0 Safari/602.1.31 Google Chrom

    iOS 11 Webブラウザのユーザーエージェント (Safari, Google Chrome, LINE など) - Qiita
  • 主力フリマアプリ iOSオープンソースライブラリ調査 - Qiita

    メルカリの成功を筆頭に、フリマアプリが各社頑張っている印象があるので、アプリの著作権情報から各アプリでつかわれているオープンソースライブラリを調べてみた。 ついでにメルカリも手を広げている、クラシファイドアプリ(ジモティーとアッテ)も調べた。 iOSの場合は使っているライブラリによって、ObjCかSwiftのどちらが使われているか推測できるので、面白いと思う。 対象のiOSアプリは以下。 オールジャンル ヤフオク(※1) / メルカリ / ラクマ ファッション フリル / SHOPLIST USED /CD/DVDなど カウル / ブクマ クラシファイド ジモティー / アッテ ※1 ... オークションだけどフリマモードあるので入れました。 サマリーと所感 以下、気になったところだけ各アプリ別に書きます。 どのアプリにも必須なネットワーク系やRxなどのアプリ全体で使われるライブラリは、

    主力フリマアプリ iOSオープンソースライブラリ調査 - Qiita
  • iOSの消耗型課金のサーバーサイドTipsまとめ - Qiita

    注意 この情報は2017年8月25日現在のものです。 目次 消耗型課金全体の処理フロー レシート検証について 課金アイテムの扱い方について 消耗型課金全体の処理フロー 消耗型課金とは、AppStoreで登録できる使い切りのアイテムへの課金のことをいいます。 たとえば、ゲームアプリでライフを購入するときなどは使い切りのアイテムなので消耗型課金になります。一方、1か月など決まった期間サービスが受けられる課金のことを月額課金や、自動更新購読といいます。 (実際のアイテム登録画面) アプリで消耗型課金商品を購入してからの処理の順番は、下記の図のようになります。 アプリからAppStoreへ購入リクエスト AppStoreからレシートを受取る サーバーサイドへBase64エンコード済みのレシートを投げる サーバーサイドはBase64エンコード済みのレシートを使ってAppStoreにレシート問い合わせ

    iOSの消耗型課金のサーバーサイドTipsまとめ - Qiita
  • 【Swift】Dateの王道 【日付】 - Qiita

    概要 時間という概念は、概念と呼ばれるものの中で最も日常に溶け込んだ存在です。 投稿では、まずはじめにSwiftでの正しい日付・時刻の扱い方を知るために、その仕組みとなっている時間・時刻の定義についてまとめていき、その後Dateを扱うときのアンチパターンとベストプラクティスについて考え、その対応について紹介していきたいと思います。 GMT / UTC / JST / UNIX TIMEについて SwiftでDateを扱う前に時刻とはなにかについて知る必要があります。ここでは世界で主に使われる時刻の定義の種類について簡単におさらいをします。 GMT GMT(グリニッジ平均時): UTCが現れる以前まで世界共通時として扱われていたものであり、経度0からの平均太陽時を指します。現在ではUTCと同義で扱われることが多いですが、厳密には異なりGMTはうるう秒が考慮されないためUTCとは100年でお

    【Swift】Dateの王道 【日付】 - Qiita
  • Swiftの有名画像キャッシュライブラリを比較してみた - Qiita

    Placeholder(プレースホルダー): 画像読み込み中に出す画像の機能(インジケーターとはまた違います) ImageTransform(画像加工): 取得した画像を表示するまでに編集できる機能(例 サイズ、まる角など) Animation(アニメーション): 画像出現の際にアニメーションをつける機能 Prefetch(プリフェッチ): 表示する画像をあらかじめ読み込んでおく機能 考察 SDWebImageとKingfisherの機能はだいたい同じ NukeはPreheatで拡張すること、PINRemoteImageはデフォルトでプリフェッチ機能が使える。 AlamofireImageは画像出現アニメーションが一番充実している。自分で作らなくてもデフォルトでいくつか用意されている。オプションで自作アニメーションも設定可能。(以下、用意されたアニメーション) crossDissolve

    Swiftの有名画像キャッシュライブラリを比較してみた - Qiita
  • iOSアプリのCrashログをsymbolicateする

    iPhoneアプリのクラッシュログからクラッシュの原因を探す。 必要なもの クラッシュログ dSYMファイル クラッシュログを取得 クラッシュログ一覧を表示 Devicesウィンドウを開く Xcode Windows -> Devices (Shift+Cmd+2) デバイスを選択 View Device Logs でクラッシュログの一覧を表示 クラッシュログのエクスポート 該当アプリのクラッシュログをCtrl+左クリック(右クリック) Export Log で任意のディレクトリに出力 dSYMファイルを取得 Organizerを開く Xcode Windows -> Organizer (Shift+Cmd+2) 該当アプリのクラッシュしたバイナリに対応するxcarchiveファイルを表示 該当アプリを選択 クラッシュした時のビルドをCtrl+左クリック(右クリック) Show in F

  • [iOSアプリ開発] API Reference & Programming Guide & Sample Code - Qiita

    Apple Developer Documentation Programing Gude & Sample Code Documentation Archive語ドキュメント ※基的に英語版の方が新しいので、最新の情報は英語版を参照。 Apple Developer Documentation ※こちらが最新になったようです。 Guidelines AppleのAppStoreで開発したアプリを公開する際には、Appleの審査があり、以下のガイドラインに準拠する必要があります。ガイドラインは審査にパスする為だけでなく、ユーザーが使いやすいUI/UXを実現する為にも、理解しておくことは重要です。 アプリケーション審査ガイドライン App Store審査ガイドライン iOS Human Interface Guidelines Register as a new user and u

    [iOSアプリ開発] API Reference & Programming Guide & Sample Code - Qiita
  • iOS開発で導入しているライブラリの一言説明 - Qiita

    あるプロジェクトで導入しているライブラリを簡単に説明を添えてくれと頼まれたので その内容をQiitaにも投稿します。 iOSプロジェクトで導入しているライブラリの説明 実際にプロジェクトで使っているコードを一部抜粋して載せます。 ※ 長くなってしまうので必要最低限の記述とし、Import等は省きます。 ※ App.XXというのは自前で定義しているstructなのでスルーしてください。 APIKit ishkawa/APIKit: Type-safe networking abstraction layer that associates request type with response type. APIリクエストをする際に使用するネットワークライブラリです。 JSON デコーダのHimotokiと合わせて使っています。 例:お知らせ情報を取得 import APIKit import

    iOS開発で導入しているライブラリの一言説明 - Qiita
  • iOS開発でClean Architectureを採用した際のイイ感じのディレクトリ構成とは - Qiita

    Clean Architectureを採用しているとファイル数が膨大になってしまうため、イイ感じにグルーピングして管理したいですが、レイヤ単位で分けるか画面とそれ以外で分けるか悩むと思います。(悩みました🙋) 2,3の構成を試し、その中で一番イイ感じに運用できた構成を紹介します。 その前によく見られているであろうリポジトリ※ のディレクトリ構成をパターン分けしてみました。 ※「ios clean architecture」でググった際の結果とGitHub検索で出た上位結果 ディレクトリ構成のパターン 上記でさらっと挙げたように大きく2つのパターンがあると思います。 「レイヤ単位で分けているパターン」と「画面とその他で分けているパターン」です。 ここでは参考に上記の2つのパターンに分けて構成をまとめます。 以下では基的にフォルダ名のみ記載します。 フォルダ名のみだと把握しにくいと判断した

    iOS開発でClean Architectureを採用した際のイイ感じのディレクトリ構成とは - Qiita
  • Swift コンパイラのアーキテクチャ - Qiita

    Swift のコンパイラの開発に手を出してみたい方向けに、コンパイラの全体構成がどうなっているのかを、大まかに説明します。コードリーディングの参考になればいいなと。 Swift コンパイラの構成 僕はプログラムを把握するときに、エントリポイント(最初に実行される箇所、 main 関数)が分からないとすごく不安になります。逆に言えば、エントリポイントさえ分かれば、そこから処理を追っていけば良いのでその後の理解が非常に楽になります。なので最初は swift コマンドのエントリポイントから。 注意: このエントリで、 GitHub にある実際のコードにリンクを張っていますが、行番号は時と共に変わってしまうので、ファイルまでのリンクになっています。関数名などで検索してください。 ドライバー (Driver) swift コマンドですが、実体は tools/driver です。 tools/driv

    Swift コンパイラのアーキテクチャ - Qiita
  • iOSアプリデータの保存 - Qiita

    iOSアプリでデータを保存する際に考察したこと。 データを保存する一例 保存したいもの データ 具体例 制約 不可欠 固定長 セキュア バックアップに含める

    iOSアプリデータの保存 - Qiita
  • [Swift3][個人的メモ]AlamofireのRouter - Qiita

    import Alamofire enum Router: URLRequestConvertible { static let serverURL = "http://example.com" case page1 case page2(String) case page3([String]) case page4(String,[String]) var method: Alamofire.HTTPMethod { switch self { case page1: return .post default: return .get } } var path: String { switch self { case .page1: return "/page1" case .page2(let str): return "/page2/\(str)" case .page3: retu

    [Swift3][個人的メモ]AlamofireのRouter - Qiita
  • Xcodeのビルド待ちで消耗してたので見直したら50%以上削減できた話 - Qiita

    まえがき 「ビルド待ちすぎて頭おかしくなりそう」 そうやって消耗されてませんか?自分もそうでした。 でも巷にはXcodeでのビルド時間を削減・短縮する様々な方法がシェアされております。 そこで、実際に自分が開発しているProjectに対してそれらの方法をちゃんと適用して、どの程度効果があったかを実測値とともに記しておければと思い執筆しました。 ビルド時間が長くて作業に集中できないよっていう方 よく何%削減とかいうけれど当に実測値でみても効果あるの?と疑問を抱いている方 の参考になれば幸いです。 記事でも、改善方法についての解説は行なっておりますが、先人様方の記事の方がより詳細に記されているため、そちらも合わせてご参考にしていただければと思います。同時に、今回の効果測定でも下記記事は大変参考になりました。ありがとうございます @you_matz さん: Xcode8でビルドが遅すぎるのを

    Xcodeのビルド待ちで消耗してたので見直したら50%以上削減できた話 - Qiita
  • 【Swift】JSONのお手軽パース方法【はてな】 - Qiita

    お手軽にJSONをパースする 今回は株式会社はてなの研修に使用されている(?)教科書の一部を紹介したいと思います。 その教科書のiOSパートで紹介されているリポジトリ内のJSONObject.swiftを修正したものを利用すれば、とてもお手軽にJSONをパースすることができます。 やり方 JSONObject.swiftの用意 JSONObject.swiftに置いてあるコードをそのままコピーしたファイルを自分のプロジェクト内に作成します。 リンク先は僕のリポジトリのファイルですが、これは上記の教科書にあるJSONObject.swiftの内容をSwift4.0でビルドできるように修正したものです。 パースしたいJSONデータのモデルを作成 次のように、受け取るJSONデータに応じてパース結果を保持するデータモデルを作成します。 受け取るJSONデータを提供するAPIのリファレンスなどをよ

    【Swift】JSONのお手軽パース方法【はてな】 - Qiita
  • [iOS][Swift3] ニュース系アプリのユーザインタフェース PageMenuKit の実装 - Qiita

    はじめに ニュース系アプリのユーザインタフェースの実装で、Objective-C での実現方法について記した。 ようやく Swift を学び始めたので、練習用に先の記事で紹介した PageMenuController を Swift3 で書き直し、PageMenuKit としてフレームワーク化してみた。 PageMenuKit の設計と実装 完成版は github に PageMenuKitSwift として公開中。 すぐに動かしてみたい人は、上記 URL をクリックしてダウンロードするか clone するかして、Xcode でビルドして、 iOS Simulator で実行してね。 メニュー画面の設計 PageMenuController と同じく、画面上部で横スクロールするメニューを実現し、スタイル指定でメニュー部分を切り替え可能な仕組みを採用する。また、メニュー部分は汎用的な親クラス

    [iOS][Swift3] ニュース系アプリのユーザインタフェース PageMenuKit の実装 - Qiita
  • 体系的なSwift言語学習 - Qiita

    言語学習をしていると、もっと体系的に学びたい、実際に実務でどんな感じのソースコードが書かれているかみたいなどと思うことがあると思います。その中で自分が体系的に学べたものをいくつか紹介したいと思います。 ※内容は初心者から中級者向けです。 Github Repositories https://github.com/raywenderlich/swift-algorithm-club raywenderlichさんによる、swiftでalgorithmを学べるリポジトリです。 https://github.com/kickstarter/ios-oss Kickstarterさんが実際にリリースしているアプリのオープンソースリポジトリです。 https://github.com/mixi-inc/iOSTraining/blob/master/Swift/README.md mixiさんが公

    体系的なSwift言語学習 - Qiita