iOS関連のことを調べてみた2020年09月24日

iOS関連のことを調べてみた2020年09月24日

Unity iOSの内部フォルダの保存、閲覧する方法

#はじめに
UnityでiOSの「フォルダ」アプリに保存したい場合の方法について記述します。実装方法よりXcodeの設定方法がメインとなります。

#実装について
Unityの[Application.persistentDataPath](https://docs.unity3d.com/ja/2019.4/ScriptReference/Application-persistentDataPath.html)を使用します。
永続的なデータを保存する場所として用意されているパス先です。

“`C#
using UnityEngine;
using System;
using System.IO;

public class save : MonoBehaviour
{
private string _savePath;

void Start()
{
//iOS : /var/mobile/Containers/Data/Application//Documents/Product名/hoge/
/

元記事を表示

[CoreML]CreateMLを用いたテキスト分類モデルの作成方法

## 投稿のポイント
今回Appleが提供している `CreateML`を用いて、`positive or negative を判別するテキスト分類モデル`を作成したのでアウトプットします。

`画像分類モデル`に関する情報はある程度発見できたのですが、`テキスト分類モデル`に関する情報はあまり見つかりませんでしたので参考にしていただければと思います。

**備考) この記事のコード記述箇所のファイル名の拡張子に`.playground.swift`とありますが、実際のファイル名は`.playground`です。コードの可読性を高めるため(コードに色を付けたいため)にQiita上だけ`.swift`を付けさせていています。ご了承ください。**

## 目次
① テキストデータの作成
② CreateMLとテキストデータのインポート
③ トレーニングデータとテストデータの準備
④ テキスト分類の作成とトレーニング
⑤ 分類器の精度と評価
⑥ テキスト分類モデルをCoreMLとして保存

## ① テキストデータの作成
まずJSONまたはCSV形式でテキストデータを収集します。(今回はJS

元記事を表示

iOS14でのUIDatePickerの挙動について

# iOS14でのUIDatePickerの挙動について
こんにちは。
今回は業務でiOS14対応を任されまして、
UIDatePickerについてを改修するにあたりいろいろ調べたので、メモ的に残しておきます。
誰かの役に立てば幸いです。

### 環境
macOS Catalina 10.15.6
Xcode Version 12.0
Simulator Version 12.0 iOS14 iPhone 11pro

## 何が変わった?
iOS13以下では、DatePickerには UIDatePickerStyleに

“`swift
.inline
“`
がありませんでしたが、iOS14で新たに追加されました。

“`swift
public enum UIDatePickerStyle : Int {
case automatic = 0
case wheels = 1
case compact = 2

@available(iOS 14.0, *)
case inline = 3
}
“`
ざっと見る限り他の追加や変更など

元記事を表示

アプリ開発でSwagger定義があるならPrismを使おう

スマホアプリの開発でバックエンドの人がSwagger定義(Open API Specともいう)を使ってくれてたらPrism使ったら良いよ、というお話。

# Prismとは
https://stoplight.io/open-source/prism/

– Stoplightという会社が作っている。APIの開発をスムーズに進めていくためのツールを色々提供している。
– Prismはそのツールのうちの1つで、いわゆるモックサーバー。OSSとして提供されている。
– 別のサービスだと本家のSwagger UIもレスポンスをモックすることができるし、API Sproutなんかもある。

# インストール&使い方
“`
$ npm install -g @stoplight/prism-cli
$ prism mock swagger.yaml
“`
これだけ。簡単。デフォルトで`127.0.0.1:4010`のポートを使い、読み込んでいたswagger定義ファイルを更新すると自動でリロードもしてくれる。(これがSwagger UIのモックサーバには無い)

# レスポンスのカスタマイズ

元記事を表示

There was a problem loading the requested app…というexpoエラー

# エラーが発生した理由
![スクリーンショット 2020-09-23 20.04.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669290/8841955d-9bc8-2ba3-e185-a2535b86c68c.png)
今回の場合では、下のメッセージを確認すると「The experience you requested requires a newer version of the Expo Client app.」と書かれており、Expo Clientアプリの新しいバージョンに更新する必要がある。

#解決方法
・iOSシュミレーターからExpoアプリ長押しで選択し、削除
・ターミナルにiを入力してiOS simulatorを起動
・iOS simulator内に自動でExpoがインストールされる

#あとがき
おそらくExpoの更新をする度にこの作業をする必要があるため、頭の片隅に置いておきたい

元記事を表示

プロキシツールmitmproxyで、httprequest・httpresponseの内容をチェックする

ソフトウェア開発でhttpリクエストを送ることはよくあると思うが、その中身をチェック・デバッグするにはどうするか。

もちろん開発しているツールで中身を見てもいいし、ログを仕込んでもいいと思うが、場合によっては少し手間がかかったりもするしリアルタイムで把握しづらかったりもする。

通信の間にプロキシを介在させればHttpリクエスト、レスポンスの中身がプロクシにより取得できるので便利である。

色々とツールはあるが無料で機能が豊富なmitmproxyを使う。これをmac上で動かし、別のiOSデバイス(iPhoneなど)からインターネットへのアクセスを仲介してみる。実際に試してみたが、手軽に素早くリクエスト・レスポンスをチェックできるため、デバッグの速度が上がり何よりストレスが減った。1

他のツールを探したい場合 -> [アプリのAPIリクエストのトレースはどうするのが効率的か?](https://techblog.zozo.com/entry/ios_api_request_trace)

### インストール

Homebrewというツールを使いインストールする。

“`
brew

元記事を表示

iOSDC 2020 1日目に参加しました。

# 概要

iOSDCの1日目に参加しました。

僕の気になった内容メモと感想をまとめる記事です。

見たトークは、

* Apple Pencil対応の勘所を話します
* 100人でアプリをリファクタリングして見えてきた、最強のiOSアプリ設計に求められること
* 新規機能開発からモジュール分割を始めてみる
* ベジェ曲線の知らない世界
* GitHub ActionsでiOSアプリをCIする個人的ベストプラクティス
* 効率よくUIKitからSwiftUIへ移行する

## iOSDC全体

ガイダンスの声優に**緒方恵美さん**や**三石琴乃さん**が出てきてすごい!
スポンサーの説明がなんかすごくてテンション上がりました!
テンション上がってノベルティのTシャツを着るという流れです。

## Apple Pencil対応の勘所を話します

プロポーザルは[こちら](https://fortee.jp/iosdc-japan-2020/proposal/348c2d74-7855-4d8b-8457-db9df25f9a7c)

スライドは[こちら](https://spe

元記事を表示

AirPods Proの加速度センサーの値を取得する【iOS14】

# はじめに
皆さんは,AirPods ProのSpatial Audioと呼ばれる空間オーディオ再現技術試しましたか?
臨場感がすごいですよね.

SpatialAudioは,AirPods Proに搭載されている加速度センサーやジャイロスコープを用いて音場をリマップして,,,
みたいなことをしているらしい.

iOS14からCoreMotionの中にCMHeadphoneMotionManagerが追加され
簡単に取ってこれることがわかったのでちょっと調べてみました.

# いるもの
Xcode : 12.0+
iOS : 14.0+
AirPods Pro

# Info.plistに使用目的を記述
CoreMotionを使うのでInfo.plistにさくっと追加
![スクリーンショット 2020-09-23 0.58.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595030/7ac4ff49-eba1-8f65-c0f7-95eadf1ddcc3.png)

# 実装
“`sw

元記事を表示

【Swift】機械学習(=ML)とAIとの違いを学んだのち、Core ML を実装してみる。〜機械学習を知る編〜

#はじめに

こちらでCoreMLの簡単な実装をしています。
[**【Swift】機械学習(=ML)とAIとの違いを学んだのち、Core ML を実装してみる。〜実装編〜**](https://qiita.com/kazuki_user/items/2d3e7968772860479b70)

本記事と読み合わせて頂けますと、嬉しいです?

#機械学習(= ML) とは?

機械学習は英語で、「**`Machine Learning`**」
簡単に言うと、以下を指します。

– **『AIが自律的に物事を学ぶための技術**』
– **『機械に大量のデータ・パターン・ルールを学習させることにより、判別や予測をする技術』**

![ML.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683795/0743a74c-de73-09e7-6cbc-99d33900df1f.png)

##ML は、意外と歴史のある AI 分野のひとつ
機械学習はAIという概念の中の、1つの分野です。

1959年、**機械学習

元記事を表示

【Swift】機械学習(=ML)とAIとの違いを学んだのち、Core ML を実装してみる。〜実装編〜

#はじめに

こちらでCoreMLを学ぶのに必要な、機械学習のイロハについて解説しています。
[**【Swift】機械学習(=ML)とAIとの違いを学んだのち、Core ML を実装してみる。〜機械学習を知る編〜**](https://qiita.com/kazuki_user/items/2d3e7968772860479b70)

本記事と読み合わせて頂けますと、嬉しいです?

#Core ML の実装

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683795/1d789826-5a1d-d2fd-0aea-290a9bde8024.png)

##結果

**約58%**の確率で、[インド象](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%89%E3%82%BE%E3%82%A6)?
全ての無有機物の中から”インド象”だと認識していると考えたら、かなり高確率..!

> インドゾウ(学名:Elephas maxim

元記事を表示

SwiftでRealmを使用する方法について

#Realmをインストールする

Realmを使用するために、CocoaPodsを使用してインストールを行います。
PodFileに`pod ‘RealmSwift’`を追記し、`pod install`でインストールします。

“`
pod ‘RealmSwift’
“`

Swiftでは`import RealmSwift`でインポートします。

“`
import RealmSwift
“`

# モデル定義

`class モデル名: Object { }`でモデル定義を行います。
`@objc dynamic var`で、プロパティ定義を行います。

“` Swift:
import UIKit
import RealmSwift

class モデル名: Object {
@objc dynamic var プロパティ名1 : 型名 = 初期値
@objc dynamic var プロパティ名2 : 型名 = 初期値
}
“`

# データの追加

`realm.add(モデル名(value: 値))`で、データを追加できます。
事前に、プロ

元記事を表示

iOSDC「あなたの知らない連絡先の世界」「詳解Storyboard」補足&参加した感想

iOSDC Japan 2020で発表してきた内容でいくつか受けた質問の答えや補足&参加した感想になります

## あなたの知らない連絡先の世界

はてなブックマークで紹介されたらしく、えらい数見ていただいてます。

### vCard 3.0(iOS)と vCard 2.1(Android)
Androidで取得したvCardは、Quoted-printableがかかっています。

iOS

“`
BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//iPhone OS 13.6//EN
N:日向;強;搩;ドクター;三世
FN:ドクター 強 搩 日向 三世
END:VCARD
“`

Android

“`
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E6=97=A5=E5=90=91

元記事を表示

Cordova開発環境をWindows10 + AndroidとMac + iOSでそれぞれ構築

# Cordovaのインストール(共通)

Windows、Macともに共通で実施します。

npmが必要なので事前に入れておきます。
私はWindowsならnodist、MacならnodebrewでNode.js環境を作りました。

Cordova公式サイトの「[Get Started](https://cordova.apache.org/#getstarted)」に沿って進めます。

“`
> npm install -g cordova

> cordova –version
10.0.0

> cordova create MyApp
Creating a new cordova project.

> cd MyApp
“`

## Cordovaアプリをブラウザで動かす

プラットフォーム(Cordovaの実行環境)を追加して動かしてみます。
まずはブラウザで動かします。

“`
> cordova platform add browser
Using cordova-fetch for cordova-browser@^6.0.0
Adding browser

元記事を表示

部品を画面の中央に配置する方法

![スクリーンショット 2020-09-22 14.12.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/722496/d27d9143-766e-d0bc-c878-29deaa8ad347.png)

(1)AutoLayoutの部分の左から2番目のアイコンをクリックします。
(2)以下2つにチェックをいれる
Horizontally in Container (cf. Horizontal 水平な)
Vertically in Container  (cf. Vertical 垂直な)
(3) 「Add 2 Constraints」をクリック
→これで自動的に部品が画面の中央に配置されます

元記事を表示

iOSDC2020に参加しました

# はじめに
[iOSDC2020](https://iosdc.jp/2020/)が昨日無事終了しました。
今回の開催はニコニコ生放送での初のオンラインということで、どういう感じになるのだろうと思っていたのですが、グリーンバックを使っていたり、ニコ生のコメント機能でリアルとはまた違った感じで盛り上がる、家でリラックスしながら見れるなど、オンラインならではのいいところがたくさんあり、とても良かったです。

以下自分の気になったセッションを簡単にまとめていきます

# 気になったセッション

サムネイルをクリックすることでスピーカーの皆様が上げてくださったSpeakerDeck/SlideShareへ移動できます。

### 今日から分かるAVAudioEngineの全て
Day0/TrackA
スピーカー:meteorさん

[![thumbnail](https://files.speakerdeck.com/presentations/257a89099c5043e587a1f98d5a21620e/slide_0.jpg?664878)](https://speakerdeck

元記事を表示

iOSDC 2020 印象に残ったトークまとめ?

# はじめに
iOSDC 2020に参加しました!:hugging::sparkles:
https://iosdc.jp/2020/
初のオンライン開催でしたが、会社の仲間と一緒にわいわい見るのは楽しかったです。
SwiftUI関連のトークが多くて、昨今のトレンドを反映してるなぁという印象を受けました。

どれも勉強になるトークでしたが、印象に残ったトークを備忘録としてまとめておきたいと思います。
スライド画像多めでまとめているので、ざーっと流し見するも良し、気になるものがあればURLから飛んで詳細を見るも良しです:grin:(YouTubeのURLもアップされ次第追記予定です)

# Day1
## iOSには無いmacOS独自機能をCatalystで実装する
### 概要
* スライド
* [iOSには無いmacOS独自機能をCatalystで実装する #iosdc #d/make_macos_apps_with_catalyst – Speaker Deck](https://speakerdeck.com/fromkk/make-macos-apps-with-cat

元記事を表示

enumを使ってリテラルをまとめる

こんにちは。
最近自分が書いているCodeの品質を上げるために日々模索中です。
最近よく思うのは stringの文言とか、identifierを直書きしたりとか、そういうのしたくないなと思うようになり、
良い書き方ないかなと考えてCode読みあさって考えてみたら良さげな実装を思いついたので、記事にしようと思いました。

## 結論
enumで定義してしまえばまとまっててわかりやすいんじゃね?

## よくある実装1
– UITableViewのidentifierとか

“`swift
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: “Cell”, for: indexPath) as! TableViewCell
/// …
return cell
“`

## よくある実装2
“`swift

元記事を表示

Xcode Previews入門 〜コードを書かないで画面を作る〜

## はじめに
SwiftUIを使うことのメリットとして真っ先に上がるプレビュー機能ですが、実際にプレビュー機能を使いこなしている人は少ないように感じています。(自分含めて)

そこで、WWDC2020のセッションから学んだプレビュー機能をを使いこなせるようにし爆速にアプリの構築ができるようPreviewの基本やショートカットを記事にします。

今回は、Previewの基本的な使い方をご紹介させていただきます。

環境: Xcode12, macOS Catalina ver 10.15.6

**⌘**:コマンド(Command)キー
**⌥**:オプション(Option)キー
**Ctrl**:コントロール(Control)キー

## Previewsの基礎

SwiftUIのアプリを起動すると以下のような画面になっています。

### プレビューの実行・再実行 `⌘ + ⌥ + P`
右上にある`Resume`をクリックする、もしくはショートカットキー`⌘ + ⌥ + P`でプレビューを実行することができます。
これは頻繁に使い開発効率が上がるので是非覚えておくと良いと思います

元記事を表示

【iOS】プロビジョニングプロファイル更新手順

##前書き
プロビジョニングプロファイルの有効期限(1年)が過ぎた場合は更新が必要になるので、更新手順のメモ書き?

## 証明書のダウンロード(すでに証明書をキーチェーンに登録している場合は不要な手順)
下記の記事の**「④ 証明書(Certificate)の作成」**手順通りに証明書を作成して登録しておく
https://qiita.com/Labi/items/3b71b8f5ef065904c1de

## プロビジョニングプロファイルの更新
1. Apple Developer Program へアクセス
https://developer.apple.com/jp/programs/

2. **Certificates, Identifiers & Profiles** を選択
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676215/baa0c

元記事を表示

iOSDC2020初参加して

## iOSDC参加しました

今回自分はiOSDC初参加しまして、参加した記事を書くまでがiOSDCだということで

あまりまとまった内容はかけないですが、とりあえず感想だけでもと思い書いています。

## iOSDCとは

iOSDCは、iOS周辺技術に関わるエンジニアが、技術的なノウハウを共有するためのイベントです。

2016年から開催されていて今年で4年目のようです。

[iOSDC2020公式サイト](https://iosdc.jp/2020/)

今年は初のオンライン開催でした。

## ノベルティの量

下世話な話ですがノベルティの量すごい!

スマホスタンドからマスクケースからお水まで。

色々とあってすごいなーと思いました。

## 参加しての感想

本題の参加しての感想ですが、

**いや〜楽しかった!**

自分はエンジニアとしてまだまだで、正直聴きながらだと分からずに

タイムシフトで見返してやっと分かる、みたいなものもたくさんありました。

ただ、これは自社の別の現場で使えそうだな〜とか

自分自身試してみたい技術やそれを使って作りたいものも発見というか気

元記事を表示

OTHERカテゴリの最新記事