iOS関連のことを調べてみた2019年11月06日

iOS関連のことを調べてみた2019年11月06日

SwiftUIでプレビューがUnknown preview provider “ContentView_Previews”エラーとなる

小ネタですがハマってしまったので誰かの参考になれば。

## 環境
– macOS Catalina 10.15.1
– Xcode 11.2 (11B52)
– iOS 13.2

## 現象

ビルドは通りますし、実行したら実機で動きますが、
プレビューがエラーで表示されません。

![ 2019-11-06 10.09.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190739/3b367653-b0db-6800-a576-b54752d59aab.png)

## 原因

Display Nameが日本語なのが原因でした。
英数字のみにしたら直りました。

![ 2019-11-06 10.13.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190739/f8696525-f5ba-6a32-f40a-0ef3d8ed543a.png)

## 回避策

そうは言ってもアプリ名は好きに付けたいです

元記事を表示

SwiftUIとCoreDataを@FetchRequestで連携させる

データベースのデータをSwiftUIに表示したい場合、
データベースがCoreDataであれば、
`@FetchRequest` と `FetchedResults` を使うことによって連携することができます。

# FetchRequest

[FetchRequestのドキュメント](https://developer.apple.com/documentation/swiftui/fetchrequest)

FetchRequestのパラメータには `sortDescriptors` や `predicate` などが用意されていて、
`@FetchRequest` をFetchedResultsプロパティにつけることによってCoreData内のデータを取り出せます。
例えば、EntityというデータモデルをcreateAt順で取り出したい場合は以下のコードの感じでプロパティを用意します。

“`swift
@FetchRequest(entity: Entity.entity(), sortDescriptors: [NSSortDescriptor(keyPath

元記事を表示

URLからQRコードを生成する

#手順
これをコピペ

“`swift
extension String {

func generateQR() -> UIImage? {
guard let data = self.data(using: .utf8) else { return nil }
guard let qr = CIFilter(name: “CIQRCodeGenerator”, parameters: [“inputMessage”: data, “inputCorrectionLevel”: “M”]) else { return nil }
let sizeTransform = CGAffineTransform(scaleX: 10, y: 10)
guard let qrImage = qr.outputImage?.transformed(by: sizeTransform) else { return nil }
return UIImage(ciImage: qrImage)
}
}
`

元記事を表示

Unity Cloud BuildでFirebaseを使ったiOSアプリをビルドする

Unity Cloud BuildではCocoapodが使えません。
なのでCocoapodを使わずにFirebaseの機能をiOSで使う方法を紹介します。
##使えた機能
* Analytics
* Realtime Database
* Authentication
* Cloud Messaging
* Dynamic Links 

##UnityにFirebaseを実装する
###FirebaseのSDKを入れる
まず [ここ](https://firebase.google.com/download/unity?authuser=0 “Unity Firebase SDK”) からFirebaseのUnity用のSDKをダウンロードします。
次にダウンロードしたSDKをUnityにインポートします。
[Assets]>[Import Package]>[Custom Package…]
![2019-11-05 (3)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/357553/d

元記事を表示

Xcode11.2でStoryboardのUITextViewがcrashする

# エラー内容
“`
*** Terminating app due to uncaught exception ‘NSInvalidUnarchiveOperationException’, reason: ‘Could not instantiate class named _UITextLayoutView because no class named _UITextLayoutView was found; the class needs to be defined in source code or linked in from a library (ensure the class is part of the correct target)’
“`

# 発生条件
– Xcodeのバージョンは11.2
– StoryboardのUITextViewを使っている
– 実機端末のosバージョンが13.2以下

# 解決方法
## Xcodeをダウングレードする
11.2以外のバージョンを使う

## simulatorで検証する
この問題は実機だけで発生する

## `_

元記事を表示

Flutterウィークリー #82

# Flutterウィークリーとは?
FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/

この記事は#82の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-82

※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。

# アナウンス

### Flutter Interact –日付を保存します
https://events.google.com/flutter-interact/


Flutterチームによる新しいイベント。今回はニューヨークで開催され、全世界に向けて生放送されます。

# 読み物&チュートリアル

### Over the Rainbow –カラーフィルター
https:/

元記事を表示

Go言語でiOS開発ツールを作成する:Localizable.stringsファイルからenumを生成する

# はじめに
 `Go言語でiOS開発ツールを作成する` というモチベーションは、まずGo言語が自分にとってとても興味深い言語であるいうところから始まっています。もともとLinux上でC言語を使って組込製品などを作ってきた人間にとっては、Go言語はすごく分かりやすくて便利な言語だという感触がありました。しかも高速(らしい)です。
 実は以前にSwiftでMacで動くiOS開発ツールは作った経験があるのですが、今回Go言語でチャレンジした感想は、Swiftに比べてもGo言語はとても優れているということです。(特にMacOSやLinuxで動くツールを作成する場合)

# 目標

“`:Localizable.strings

“clode_window” = “閉じる”;
“delete something” = “削除する”;
“cancel” = “キャンセル”;
“OK” = “OK”;
“_Only_this_” = “Only this”;
“`

例えば上記のような `Localizable.strings` から下記のようなswiftファイルを生成します。

“`swi

元記事を表示

追記:修正11.2.1GM配信中【緊急周知】Xcode 11.2 使用注意!(Kozeさんブログより)

**追記:2019年 11月 6日 現在、この問題が修正された Xcode 11.2.1 GM が 開発者向けサイトからダウンロード可能です。**

実際にインストールして試してみて、問題点が修正されているのを確認しました。

Xcode 11.2.1 が正式公開された後この記事は削除します。
 

Koze さんのブログを参照ください。

[『Xcode 11.2 + Storyboard UITextView でクラッシュ』](http://koze.hatenablog.jp/entry/2019/11/03/220000)

付記:
話題になっていたのでそのうち直るかなと思っていましたが直らず、2019年11月4日現在、Xcode 11.2の次のベータ版ダウンロードも存在しないので、**初心者の開発者が困らないように周知の一助として投稿しました。**

うちでもひとつ前の古い実機環境でテストしてみたところ、起動時にクラッシュしました。
iOS 13.1( iPad Air 2 実機)
Xcode 11.2(Swift5 + UIkit + .storyboard

元記事を表示

AutoLayout、バッティングが起きたとき、プライオリティは低いがバッティングの原因ではないものはどう扱われるのか

今回もAutoLayoutです。

A,B,C,D,Eの5つの荷物が入ったかばんを金属探知機にかけたら警報が鳴った。
Aを取り出してから再度かばんを検査するとまた警報が鳴った。
次にBを取り出して検査するとまた警報が鳴った。
さらにCを取り出して検査すると今度は警報が鳴らなかった。

あなたが次にするべきことは次のうちどちらか。

– かばんの中身はDとEで決定する
– AとBを順番にかばんに入れて検査し、警報が鳴らないならかばんに入れておくことを決定する(要するにAとBについて調べる)

これは私がAutoLayoutで感じた疑問である。

#AutoLayoutこの先生きのこる問題

AutoLayoutの3つの制約A,B,Cがある。
プライオリティはA>B>C。
ある状況でAとBはバッティングしてAとCはバッティングしなかった。
Bを排除することは決定だが、AとバッティングしないCはどうなるのか。

#結論
Cは排除される。

#検証コード

“`
import UIKit

class ViewController: UIViewController {

let vie

元記事を表示

coremltools 3.1の環境構築(2019年11月版)

Kerasでつくった自作モデルを環境構築したばかりの`coremltools`で変換しようとすると**エラーに次ぐエラー**で前進しているのか後退しているのかさえわからない状態になったので、まずは`coremltools`リポジトリにあるexamplesが実行できるよう環境構築をやり直したメモ。

https://github.com/apple/coremltools

ちなみに2019.11.4現在でcoremltoolsの最新リリースは`3.1`。

https://github.com/apple/coremltools/releases

## README通りに環境構築(結果的にはNG)

前提:仮想環境を利用。筆者はAnacondaを利用してPython 3.7の環境を用意した。

– coremltoolsをインストール

“`
$ pip install -U coremltools
“`

– KerasとTensorFlowをインストール

“`
$ pip install keras tensorflow
“`

– 確認

“`
$ pip free

元記事を表示

キーボードで操作できるiOS/iPadOSブラウザWazari Browserを作った

![github_issue_without_touch](https://user-images.githubusercontent.com/1880965/67365457-a69d0880-f5ac-11e9-84ef-06d448a7c4c6.gif)

[App Store – Download](https://apps.apple.com/us/app/wazari-browser/id1475585924?mt=8)

ブラウザを作ったといってもiOSではWebkitを使わないといけないという制約があるので、実際はWebviewに色々UIを追加したものを作りました。そう、React Nativeでね。 2015年に[一人React Native](https://qiita.com/advent-calendar/2015/react-native) を書いたのが非常に懐かしいです。あれから、どのようにReact Nativeが進化していったかを含めて良い勉強になりました。

開発することを決めた理由は、iPad Proのキーボード操作が不便だったからです。画面をタップ

元記事を表示

【独学】React Nativeを初心者が学習してみた part1

# はじめに
筆者のプログラミング学習歴は独学で5ヶ月ほど。
普段はRuby on Rails5を学習している初学者の私が、面白そうなのでReact Nativeを学習してみることにした。
iOSアプリ作ってみたいし、ついでにReactも学べばRailsで作ったWebサービスのフロントエンドが充実するかもしれない!といった安直な考えだけで学習を始めてしまったのだが、本当にこれで良かったのか…。
その答えはいずれ私がReact,React Nativeを習得した時にわかるだろう。

# React Nativeとは何か
[公式サイト](https://facebook.github.io/react-native/)や様々なqiitaの記事を読み漁ったが、[こちらの記事](https://qiita.com/Iwark/items/7c27e919bb71f8b256f6)にわかりやすくまとめられていた。
要は、React NativeはReactをモバイルでも使えるようにしたもの。
そしてそのReactはJavaScriptのフレームワークということ。
現時点ではこの程度しか理解で

元記事を表示

[SwiftUI]TabViewの作り方

# 前提
初投稿です。
筆者はSwift・iOS開発、初学者です。

これから、学習も兼ねてアプリ開発をしていこうと考えています。
この記事は、学習メモ的なものとして書いています。

もし読んでいただける方がいるとして、
記載内容に不備等ありましたら、ご指摘いただけますと幸いです。

※ 初学者であるため、Storyboardだとこうだよね、UIKitだとこうだよね、などという親切な解説はございません。
あらかじめご了承ください。

# TabView
下に並んでるやつのこと。

スクリーンショット 2019-11-03 22.21.09.png

# Code
Xcode > Create a new project > Tabbed app
でプロジェクト作成すると、こんな感じのコードがすでに生成されてます。

元記事を表示

白背景がダークモードの時に真っ暗になってしまう問題に注意

先日[AI顔診断メーカー]()というアプリをリリースしたのですが、「黒くなってしまって経験人数が表示されません!」というユーザーからの声をたくさんいただき、最初原因がわからなくてハマっていたのですが、、、(下画像、左が正常で右がバグ)

スクリーンショット 2019-11-03 22.03.14.png

**問題は、iOS13からのダークモードでした!**

背景をsystem background colorにしているとダークモードにした時に黒くなってしまいます。

スクリーンショット 2019-11-03 22.04.33.png[macOS/iOS] FileHandleをrawモードで読み出す方法

# [macOS/iOS] FileHandleをrawモードで読み出す方法
元記事は、StackOverflowの、[Listening to stdin in Swift](https://stackoverflow.com/questions/49748507/listening-to-stdin-in-swift)です。特に、サンプルコードは丸写しです。

## 環境
* 作成日: 2019/11/03
* macOS 10.15
* Xcode 11.0
* Swift 5

## 課題
標準入力の[FileHandle](https://developer.apple.com/documentation/foundation/filehandle)オブジェクトを、availableDataメソッドで呼び出した場合、改行キーが押されるまで、結果を返さない。キー入力ごとに値を取り出したい。

## 解決方法
標準入力のFileHandleを、rawモードで動作させる。下記のサンプルコードは、StackOverflowの[Listening to stdin in Swift](

元記事を表示

Android/iOSアプリのアーキテクチャ検討

# はじめに
アプリのアーキテクチャというと、僕が一番はじめに思い浮かぶのはMVCとかMVP、Fluxみたいな
今回のアプリでどのパターンを採用するかという点です。
ただ、現場でそのパターンだけ考えれば良いかというとそれ以外の部分に対しても
もっと検討することが多くて、何を検討するかがまとまっていないことが多いので、
自分の備忘録としてまとめてみることにしました。

# お題
・アプリが起動したらQiitaの記事の一覧を表示できる
・記事をタップしたら、Webのページで記事の内容を閲覧できる
・どの記事を見たのか、履歴を確認できる
・どんな記事を見たのか集計して、アプリの改善に使いたい
・(簡単にするため、認証はなし)

というQiita閲覧アプリで考えてみます

# 要素を分解してみる
> アプリが起動したらQiitaの記事の一覧を表示できるアプリ

QiitaのAPIを使った通信が必要。
https://qiita.com/api/v2/docs#投稿

APIはJSONなので、JSONを解析できるライブラリがあると楽そう。
リスト表示であれば、標準コンポーネントで十分。

> ・

元記事を表示

Xcodeで開発したアプリを審査通す前に身内へ試しに使ってもらうメモ

#概要

普段はReact NativeでiOSアプリを開発してます

今回は、iOSアプリは審査に出して通るまで公開できずに それまで試しに友人に使ってもらうことはできないと落ち込んでる人へ そんなことはないぞと反論するメモを共有します

#解決策
###インストール側
身内に使ってもらうのであればまず[TestFlight](https://apps.apple.com/jp/app/testflight/id899247664)をインストールしてもらい
AppStoreConnectに[サインアップ](https://appleid.apple.com/account?appId=632&returnUrl=https%3A%2F%2Fdeveloper.apple.com%2Faccount%2F#!&page=create)させましょう

File.jpgXcode プライベートフレームワーク を利用した macOS プログラムを作成する

## 概要

[新規 Xcode project を自動生成する技術](https://qiita.com/manicmaniac/items/240cd9cf1367a37763ab) にて Xcode プライベートフレームワークを用いたプログラムを作成しました。
Xcode プライベートフレームワークはプライベートというだけあり一切のドキュメントは存在せず、ヘッダーファイルすら公開されていません。
そんな状態から API を読み解き、実用的なプログラムから利用するためにはどうすればいいのかを記します。

## 目的

Xcode プライベートフレームワークを利用したい目的はいろいろ考えられます。

最もよくあるシチュエーションは、Xcode プラグインを作成するときでしょう。
たとえば [XVim](https://github.com/XVimProject/XVim2) というプラグインは Vim 風のキーバインドを Xcode で実現するためのものです。
これは Xcode Source Editor Extension などの公開 API では実現できない機能を含むため、か

元記事を表示

新規 Xcode project を自動生成する技術

## 概要

Xcode プロジェクトをプログラムから自動生成したいと思ったことはありますか?
私はあります。
しかも **Xcode がやるのとまったく同じように動き、Xcode バージョンによって微妙に異なるプロジェクトテンプレートを出し分けたり**もしたいです。
ローカルのマシンだけでなく、**CI上でも動けば完璧**ですね。

ご存知の通り、手動で新規で Xcode プロジェクトを作るには

1. Xcode.app を開く
2. メニューバーの `File` → `New` → `Project…` と辿る、もしくは単に `Shift + ⌘ + n` を押す
3. プロジェクトテンプレートを選ぶ
4. 色々聞かれるので入力する

などと結構手間がかかります。
また、何らかの理由でプログラムからプロジェクトを自動生成したいときにはこの方法ではうまくいきません。
にもかかわらず、Xcode そのものや、また Xcode に同梱されている `xcodebuild` などのコマンドラインツールにはプロジェクト作成のインターフェースが用意されていません。

世の中には自分以外にも

元記事を表示

[Catalyst]ストア申請の流れ

# Catalystを有効にする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24979/a40e2137-860d-b97f-15e9-fa3888f474aa.png)

XcodeのDeployment InfoからMacのチェックボックスにいれる。

# AppIDでもCatalystを有効にする

これ大事。maccatalyst.*.*.*というBundle IDでMacビルドが生成されるが、maccatalystというprefixのbundleIDは自分で作ることが出来ない。
Developer portalからCertificates, IdentifiersでiOSアプリのAppIDを探してMacを有効にする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24979/1809f166-092f-f0f7-82c0-83369ebac6e4.png)

# 別アプリと

元記事を表示

OTHERカテゴリの最新記事