Tips
WWDC 2017 にて Xcode 9 ではUSB接続無しで無線で繋いで開発出来るって話が出ていたけど、何の気なしに Xcode 9 を起動しても同じLAN内の iPhone がビルドターゲットに出てこないので調べてみたらすぐにやり方が分かった。 WWDC 2017 Session 404 の6分20秒…
関連記事 koze.hatenablog.jp ※ iOS 11 beta 時点での検証です 検証コード - (void)viewDidLoad { [super viewDidLoad]; PDFView *view = [[PDFView alloc] initWithFrame:self.view.bounds]; view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UI…
iOS 11 関連記事 iOS 11 UIKit の変更点 - ObjecTips iOS 11 Foundation の変更点 - ObjecTips iOS 11 Messages Framework の変更点 - ObjecTips iOS 11 PDFKit - ObjecTips iOS 11 Core Image の変更点 - ObjecTips koze.hatenablog.jp Horizon Detection V…
iOS 11 関連記事 iOS 11 UIKit の変更点 - ObjecTips iOS 11 Foundation の変更点 - ObjecTips iOS 11 Messages Framework の変更点 - ObjecTips iOS 11 PDFKit - ObjecTips Vision Framework でテキスト検出 Text Detection - ObjecTips Vision Framework …
iOS 11 関連記事 iOS 11 UIKit の変更点 - ObjecTips iOS 11 Foundation の変更点 - ObjecTips iOS 11 Messages Framework の変更点 - ObjecTips iOS 11 Core Image の変更点 - ObjecTips Vision Framework でテキスト検出 Text Detection - ObjecTips Visio…
iOS 11 関連記事 iOS 11 UIKit の変更点 - ObjecTips iOS 11 Foundation の変更点 - ObjecTips iOS 11 PDFKit - ObjecTips iOS 11 Core Image の変更点 - ObjecTips Vision framework でテキスト検出 TextDetection - ObjecTips Vision Framework で水平角検…
iOS 11 関連記事 iOS 11 UIKit の変更点 - ObjecTips iOS 11 Foundation の変更点 - ObjecTips iOS 11 Messages Framework の変更点 - ObjecTips iOS 11 PDFKit - ObjecTips iOS 11 Core Image の変更点 - ObjecTips koze.hatenablog.jp Vision Framework iO…
iOS 10.3から登場する SKStoreReviewController のドキュメントにApp Storeのレビュー画面を直接開く方法がしれっと記載されている。 https://developer.apple.com/reference/storekit/skstorereviewcontroller/2851536-requestreview アプリのURLのクエリに…
UIImageView に画像を設定する際にフワッとフェード(ディゾルブ)するようにするには、CALayer に CATransition のアニメーションを加えてやる コードは以下 UIImageView *imageView = self.imageView; imageView.image = image; // 画像を変更 [imageView.…
CATiledLayer は表示時にデフォルトでフェードインエフェクトがかかるが CATiledLayer のサブクラスを作って以下のクラスメソッドをオーバーライドして 0 秒を返してやる事でフェードインしないようにする事が出来る。 + (CFTimeInterval)fadeDuration; 実装…
撮影は UIImagePickerController にお任せして撮影後のデータを Photos で保存する実装方法。 まず UIImagePickerController に sourceType でカメラ撮影を指定。 デフォルトのままだと写真撮影しかできないので、カメラ撮影で利用可能な形式を全て設定して…
watchOS 1 から watchOS 2 への移行は、Xcode のプロジェクトを選択して Editor > Validate Settings... を選択して Xcode にお任せてプロジェクト更新するのが良い。 でもなぜかこの時に watchOS の移行についての項目が出てこなくてプロジェクトがうまくア…
自作Farmework内で watchOS で利用できないAPIを使っていると not available on watchOS のエラーが出て watchOS 向けにビルドできない。 Apple純正の Framework と同じようにヘッダのメソッド定義に __WATCHOS_PROHIBITED を付けて watchOS では使えません…
NSString で表される文字列の真偽値を判定するには boolValue メソッドが使える。 @property (readonly) BOOL boolValue NS_AVAILABLE(10_5, 2_0); 数字、YES/NO、true/false などの文字列を boolValue メソッドで判定できる NSLog(@"%d", @"1".boolValue); …
LAContext の以下のAPI - (void)evaluatePolicy:(LAPolicy)policy localizedReason:(NSString *)localizedReason reply:(void(^)(BOOL success, NSError * __nullable error))reply; このAPIで指紋認証の LAPolicyDeviceOwnerAuthenticationWithBiometrics …
iOS, macOS でプログラム内でUUIDを使う場合 CFUUID か NSUUID が使える。 プログラム外で識別子としてUUIDが欲しい時は uuidgen というコマンドが用意されているのでこれを使う。 ターミナルで $uuidgen 結果は以下のように生成されたUUIDが表示される 14B7…
新たに作成したFirebaseアカウント(GoogleアカウントA)で今まで使っていた既存のAdMobアカウント(別のGoogleアカウントB)を引き続き使いたいというパターンの手順。 *1 *2 GoogleアカウントAでFirebaseにログイン 新規プロジェクトを作成 歯車アイコンか…
まず初めに 後からこの issue で分かった事だけど https://github.com/firebase/quickstart-ios/issues/13 Google Cloud Platform の利用規約に同意しておかないと下の手順の dSYM アップロード用のアカウントの作成やその権限付与でサーバエラーが起きて進…
アプリをBitcode対応してリリースしたら Crashlytics でクラッシュレポートが表示されなくなってしまった。 ダッシュボードには dSYMs が見当たらないとのメッセージが。 Found 1 unsymbolicated crash from missing dSYMs in 1 version in the last 24 hour…
GitHub製のエディタAtomでplistを開くとデフォルトでは Property List (Old-Style) として開かれるが、今時のplistファイルはOld-Style形式ではなくXML形式なので syntax error になってしまう。 メニューの Edit>Select Grammar かウィンドウ右下のフォーマ…
watchOSとiOSでデータのやり取りをしている場合のwatchOS 1からwatchOS 2への置き換え例 watchOS watchOS 1 [WKInterfaceController openParentApplication:userInfo reply:^(NSDictionary *replyInfo, NSError *error) { if (error) { } else { } }]; watch…
Playground で delegate メソッドを扱うにはどうする? delegate が呼ばれるクラスの実装が必要、Playground でクラス定義できるの? というあたりが疑問だったけど Playground でも普通にクラス定義が可能で delegate も試せるらしい。 下記の前回のコード…
Playground を使って簡単なオーディオ再生のテストを行う。 スニペットを実行確認するのにいちいちダミーのアプリを作ったりしなくていいのが Playground の便利なところ。 Playground なので言語は Swift まずババッと以下のコードを書いてみる。 オーディ…
iOS の言語設定の言語一覧画面と同じような画面を作ろうと思って実装してみたら中国語の場合に思い通りにいかなかったメモ iOS の言語設定の言語一覧画面 cell.textLabel.title には現地語でのローカライズ表記 cell.detailTextLabel.title にはシステム言語…
現在一番新しいローカライズの方法が XLIFF を使ったプロジェクト全体のローカライズになる。 この方法は Base Internationalization 方式でのローカライズを想定している。 Xcode のプロジェクトナビゲーターでプロジェクトを選択した状態でメニューから Ed…
前回 今回は前回の ibtool を使ったローカライズの話の続き ibtool には incremental localization という機能がある。 コマンドの形式 ibtool --previous-file <old_file> --incremental-file <old_translated_file> --localize-incremental --write <new_translated_file> <current_modified_file> --previous-file <old_file> には翻訳元の古いフ</old_file></current_modified_file></new_translated_file></old_translated_file></old_file>…
サンプルに使用する Main.storyboard ファイルは ViewController の上に1つ UILabel が載っているだけの状態 storyboard ファイルの中身のXMLは以下
genstrings は C や Objective-C のソースコードファイルから .strings ファイルを生成するユーティリティで、以下のマクロと関数を Localizable.strings に書き出してくれる。 NSLocalizedString("key", comment); CFCopyLocalizedString("key", comment); …
plutil -- property list utility コマンドで Localizable.strings (strings file format) を読み込む事が出来るらしいので試してみる。 元ファイルは以下 /* Localizable.strings Test */ "Yes" = "はい"; "No" = "いいえ"; "Cancel" = "キャンセル"; "Titl…
ローカライズに用いる Localizable.strings ファイルは NSDictionary で簡単に読み書きができる。 例えば以下のような Localizable.strings があった時 /* Localizable.strings Test */ "Yes" = "はい"; "No" = "いいえ"; "Cancel" = "キャンセル"; "Title" …