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

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

[Swift5]複雑なJSONの解析をおこない、条件を満たす要素のindexを取得する方法

## はじめに
JSON解析についてわからない方はコチラ▼の記事を参考にしてください。

**[Swift5]ライブラリ ‘SwiftyJSON’ を使ってJSONから配列(個別)の情報を取得する**
https://qiita.com/nkekisasa222/items/84c40bbfacfaca9f38a9

## JSONデータの確認

“`joyCountArray.
[{
“document_tone” : {
“tones” : [
{
“tone_name” : “Joy”,
“score” : 0.53749899999999995,
“tone_id” : “joy”
}
]
}
}, {
“document_tone” : {
“tones” : [

]
},
“sentences_tone” : [
{
“tones” : [

],
“text” : “Kozai \”Aza\” Haru

元記事を表示

【SwiftUI】Mapkitを使った位置情報の取得と逆ジオコーデイング

# はじめに
SwiftUIでMapkitとFirebaseを使用し、位置情報をデータベースに保存することを目的とする。
今回はSwiftUIで取得した現在地から逆ジオコーディングし、都道府県名と市区町村名を取得するところまでを記載。
Mapkitを使って現在置を取得する方法は前回記事を参考にしてください。

**参考記事**
[【SwiftUI】Mapkitを使った位置情報の取得とピンの表示](https://qiita.com/m37335/items/4592f4fc40a1d2b7da05)

# 開発環境
OSX 10.15.7 (Catalina)
Xcode 12.0.1
CocoaPods 1.10.0

# 取得した現在地から逆ジオコーディングを実行する

追加するのは“`makeCoordinator“`の下部に“`title“`と“`subtitle“`を定義します。

“`swift:ContentView.swift
func makeCoordinator() -> mapView.Coordinator {

元記事を表示

Unity Device Simulator のインストール方法

##背景
Device Simulatorのインストール方法が変わったようなので、忘却録として。。。

##開発環境
PC:macOS Catalina
Unity:2020.1.10f1

##内容
「Unity Device Simulator インストール」で検索すると、
同じような検索結果が出てくる。
メニューのwindowからPackage ManagerをクリックするとPackage Managerのダイアログが表示される。
ダイアログのAdvancedからshow preview pakagesにチェックを入れて、Device Simulatorで検索すれば見つかる、、、が肝心のAdvancedがない。

調べてみると、Unity 2020.1以降からインストール方法が変わったらしい。(参考のUnity 日本語ヘルプデスクに書いてあります)

書いてある通りにやれば、無事インストールでき、GameタブにGameとSimulatorを選択できるようになる。
Safe Areaを表示したり、回転することもできる。

![スクリーンショット 2020-11-16 2.17.5

元記事を表示

iOS14からIDFA取得がオプトイン形式になる理由と今後予想される動き

iOS14でも様々な機能で仕様変更がありましたね。
デフォルトブラウザを選択できるようになったので、Chromeに変更してみました。

そんなある日、ふとあることに気がつきます。
開発しているアプリでWebViewが開かないじゃないですか…!?

調査をしたところ、`LSApplicationQueriesSchemes`にURLスキームを追加していないのが原因でした。
そうしないと`UIApplication`の`canOpenURL`は常に`false`を返す仕様になっていました。

> you must declare the URL schemes you pass to this method by adding the LSApplicationQueriesSchemes key to your app’s Info.plist file. This method always returns false for undeclared schemes, whether or not an appropriate app is installed.
>
> 引用:[c

元記事を表示

初めてのiOS開発

今度会社の業務としてiOSアプリの開発を行うので事前に勉強しておこうと思いまして、今回の記事を書きました。自分の備忘録としてささっと作成したのでわかりにくいところが多々あるかと思います。そのうちちゃんと書こうと思います。

# xcodeのインストール
### Xcodeとは
XcodeはMac、iPhone、iPad、Apple Watch、Apple TV向けのアプリを開発できる環境を提供してくれるIDE(統合開発環境)です。
Xcodeを利用することで画面やコードの作成、デバック、App Storeへのアプリの提出ができるようになります。
SwiftやObjective-Cを使用して開発できます。
### インストール方法
App Storeからxcodeをインストールするか、下記のURLから直接xcodeのインストーラをダウンロードする方法があります。
https://developer.apple.com/download/more/
僕の場合,App Storeからインストールしようとするとxcodeの容量が大きいのかインストールできませんでした。
なので、xcodeのイン

元記事を表示

swift実践入門output Chapter5  後編

# 制御構文
条件分岐、繰り返し、遅延実行、パターンマッチ
プログラムの実行フローを制御する構文。制御フローの制御には条件分岐や繰り返しなどがあり、それを組み合わせ実行し自在に操る

###for-in文 シーケンスの要素の列挙
“`chapter5.swift
let array = [1,2,3]
for element in array {
print(element)
}
“`

###Dictionary
“`chapter5.swift
let dictionary = [“a”: 1, “b”: 2]
for (key,value) in dictionary {
print(“Key: \(key), vlue: \(value)”)
}

“`

###while文 継続条件による繰り返

“`chapter5.swift
var f = 1
while f < 4 { print(f) f += 1 } ``` ###repeat while文 while文は実行前に条件式を評価するため、場合によっては一

元記事を表示

swift実践入門output Chapter5

#制御構文
条件分岐、繰り返し、遅延実行、パターンマッチ
プログラムの実行フローを制御する構文。制御フローの制御には条件分岐や繰り返しなどがあり、それを組み合わせ実行し自在に操る

###if 文 条件の成否による分岐

“`chapter5.swift
let value = 5

if value <= 4 { print("valueは4以下") }else { print("valueは5以上") } ``` ###if let文 値の有無による分岐 オプショナル型とは変数にnilの代入を許容するデータ型で、反対に非オプショナル型はnilを代入できません。オプショナル型の変数にはデータ型の最後に「?」か「!」をつけます。 ```chapter5.swift let optionalA = Optional(1) if let a = optionalA { print("値は\(a)です") }else { print("値は存在しません") } let optionalB = Optional("b") let optionalC

元記事を表示

TableViewでのデータの読込・リフレッシュ・更新についての処理

# はじめに
Qiitaが提供しているAPIを使用して、`TableView`に記事を表示する際に、データの__読込__・__リフレッシュ__・__更新__について実装しましたので備忘録として投稿します。

# 概要
1. `QiitaAPI`の初期取得
2. 取得している`QiitaAPI`のリフレッシュ
3. `TableView`下部までスクロールした際に`QiitaAPI`追加取得

※上記にフォーカスをあたて説明になります。

# 動作環境
【Xcode】Version 12.0.1
【Swift】Version 5.3

# 実装コード

“`swift:CustomTableView.swift
import UIKit

class CustomTableView: UITableView {

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}

override init(fram

元記事を表示

iOSで動作する異常検知モデルを作った

## 背景

農業x深層学習のアプリケーションが作りたい!

という動機のもと、例えば作物の画像を入力してその健康状態を診断するようなアプリが作れるんじゃないかと考えてます。

病気を判定できるすごいモデルのせたアプリを作ったとして、ユーザが対象の作物の画像を正しく入力してくれるかどうかは、そのアプリの信頼性を担保する上で重要な問題になります。

例えば、上記の稲の病気を診断してくれるアプリを作ったとして、ユーザが雑草の画像を入力したとしてもそれっぽい結果を出力してしまえば、そのアプリの診断結果自体が疑わしいものになってしまいます。

![IMG_0168.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494791/b3a5cebf-2c4d-0655-6931-b14160465f41.png)

この問題に対処するため、メインとなるモデルの前段に入力画像の異常画像検知モデルを置いておけばよいのでは、と考えました。

![IMG_0169.PNG](https://qiita-image-store

元記事を表示

【ゲームアプリとベジェ曲線:その③(完結)】パーツによる絵のバリエーション

## はじめに

このシリーズでは **iOS**/**Android** ゲームアプリの描画手法として、ベジェ曲線の可能性を模索します。
第三回目は、素材をパーツ単位で作成することで、手軽に絵のバリエーションを増やす手法について探っていきます。

サンプルアプリのプロジェクトは **GitHub** にあります。
[**https://github.com/hakumai-iida/BezierSample**](https://github.com/hakumai-iida/BezierSample)
[![title_3rd](https://user-images.githubusercontent.com/13220051/99179158-25d42000-275e-11eb-8372-94f13bdd8681.png)](https://github.com/hakumai-iida/BezierSample)
前回:【[**その②:ストローク(線)による表現の付け足し**](https://qiita.com/hakumai-iida/items/fb688ed3df5

元記事を表示

[Swift5]プロトコルを使ってModelからControllerへ値を返す方法

## はじめに
今回の記事は前回投稿した**[Swift5]ViewControllerからModelに通信を行って値を渡す方法**の続編です。まだ見てない方は先にコチラ▼を見てからの方が良いかと思います。
https://qiita.com/nkekisasa222/items/dabe806c23d3890a009f

それでは本題に入りましょう!

## プロトコルの作成

まずコードを記述します。

“`SampleModel.swift

//①ここでプロトコルの作成
protocol DoneCatchProtocol {

//②Controllerに返したい値と型を指定(今回はString)
func catchSampleData(sampleValueA: String, sampleValueB: String, sampleValueC: String)
}

class SampleModel {

var sampleValueA: String?
var sampleValueB: String?
var

元記事を表示

【SwiftUI】Mapkitを使った位置情報の取得とピンの表示

# はじめに
SwiftUIでMapkitとFirebaseを使用し、位置情報をデータベースに保存することを目的とする。
今回はSwiftUIで現在地を取得し、地図を表示するところまでを記載。
Firebaseの導入方法は前回記事を参考にしてください。

**参考記事**
[【SwiftUI】CocoaPods導入手順とFirebaseの設定](https://qiita.com/m37335/items/6c507495f840d4bdaa43)

# 開発環境
OSX 10.15.7 (Catalina)
Xcode 12.0.1
CocoaPods 1.10.0

# Mapkitのインポートと地図表示まで

MapkitとCoreLocationをインポートする。
Alertは位置情報の取得が設定できなかった場合に通知を行うように設定。

“`swift:ContentView.swift
import SwiftUI
import Firebase

// 以下の行を追加
import CoreLocation
import MapKit

struct ContentV

元記事を表示

【備忘録】iOS 14 細かいTips 写真アクセス権限・バックボタン

iOS 14のTipsを書いていこうと思います。

# 写真のアクセス権限の変更

iOS 13までは写真のアクセス権限の選択肢が`許可しない`・ `OK`の2択でしたが、
iOS 14からは写真のアクセス権限の選択肢が `写真を選択`・ `全ての写真へのアクセスを許可`・ `許可しない`の3択になりました。
iOS 14では写真個別にアクセス権限を与えれるようになりました。

**iOS 13ダイアログ**
![Screen Shot 2020-11-14 at 2.11.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80912/7f9c8f24-dd30-d3c0-e49d-f63778fa3b9c.png)

**iOS 14ダイアログ**

![Screen Shot 2020-11-14 at 2.14.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80912/4021246c-181b-89ba

元記事を表示

SwiftUI 他のフレームワークを組み合わせると使えるView

SwiftUIの他に各種フレームワークをimportすると使えるViewやModifierです。

# MapKit
`Map`が使えます。

## サンプルコード

“`swift
import SwiftUI
import MapKit

struct SwiftUIView: View {
@State var region: MKCoordinateRegion
var body: some View {
Map(coordinateRegion: $region)
}
}

struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
let initialCoordinate = CLLocationCoordinate2DMake(40,40)
let span = MKCoordinateSpan(latitudeDelta: 0.5, longitudeDelta: 0.5)

元記事を表示

Googleドライブからの埋め込み動画がSafariで閲覧できない

# 問題点

* Webページに埋め込んだ Googleドライブ上の動画が、Safari で閲覧すると再生されない。
* Chrome など、別のブラウザではふつうに再生できる。
* YouTube にアップしたものを埋め込むと、Safari でも問題なく再生できる。
* 動画のサムネイルは表示されるが、再生ボタンを押すと、下のように真っ黒になってしまい、再生できない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64391/121c9f09-4b32-d98f-bd11-42cb68701dfd.png)

## (参考)Googleドライブ上の動画の埋め込み

* 以前は、Googleドライブ上のコンテクストメニューから埋め込み用のURLを取得できたが、現在は若干面倒になっている。
* Gooleドライブで取得できる共有用のURLで動画を閲覧し、そのページの右上のプルダウンメニューから「アイテムを埋め込む…」を選ぶとHTMLコードをコピーできる。
* いちい

元記事を表示

Swift初学者が電子レンジロジックを実装してみた!

#概要
現在、私はMENTAサービスを利用し、ヤマタクメンターにご指導いただいています。

ヤマタクメンターやサービスについて知りたい方はこちら!
(https://menta.work/plan/584)

その中で、今回は、応用学習の第2段ということで、
***「電子レンジロジックの実装」***の課題を行ったので、アウトプットしていきます。

なお、今回の課題はSwift初学者が作ったロジックであり、至らぬ点が多々あると思います。どうか、温かい目で見守っていただけると幸いです。

アドバイス等ありましたら、ご教授いただけると幸いです。

***環境***

-Playground

# 実装の要件

・電子レンジのワット数は900,600,200とする
・今回は、安全のために11分以上は加熱できないものとする

・タイマーの実装
  ・分と秒の概念を実装
  ・ 残り時間の出力
  ・残り時間が0秒になったら、「温め終了です」と出力し、タイマーを停止
  ・温める時間が11分以上だと「温めを開始できません!」、
   「タイマーを10分59秒以内に設定してください」と出力

・タ

元記事を表示

SwiftでFirebaseを用いた会員登録の実装

#はじめに
Firebaseとチャット機能の学習としてLINEのクローンアプリを作成しているのですが、その際のFirebaseを用いた会員登録の実装を備忘録として投稿します。
初学者ですので訂正点ございましたら、ご指摘よろしくお願いします。

#概要
今回、会員登録機能を実装するにあたり下記のように順序立てしました。
1.`FirebaseAuth`へユーザー登録
2.`FirebaseStorage`へプロフィール画像を登録
3.`FirebaseFirestore`へユーザー情報を登録

– `メールアドレス`、`パスワード`、`ユーザーネーム`の全てに記入がされていれば登録処理可(新規登録ボタン有効)としています。
– `1.`の処理の際に、承認メールを使い会員登録を完了させてから`2.`の処理に移るのがよくある手法かと思われますが、今回の目的が学習のためでしたのでその辺りは考慮しておりません。

#実行環境
【Xcode】Version 12.0.1
【Swift】Version 5.3
【CocoaPods】version 1.9.3
【Firebase】version 6

元記事を表示

FSCalendarのカレンダー表示モードを変更する

#はじめに
カレンダー付きToDoアプリを制作する際にFSCalendarというライブラリを使用しましたので備忘録として投稿します。
初学者ですので訂正点ございましたら、ご指摘よろしくお願いします。

#概要
FSCalendarではカレンダーの表示モードを`月表示`や`週表示`に任意で変更することができます。
制作したアプリの用途に絡めると「ボタンのタップイベントにて表示モードを変更する」になります。

また、FSCalendarの導入に関しましては[こちら](https://github.com/WenchaoD/FSCalendar)を参照ください。

#実行環境
【Xcode】 Version 11.7
【Swift】 version 5.2.4
【CocoaPods】version 1.9.3
【FSCalendar】version 2.8.1

#実装後の画面
![sample.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/692635/9fc8d6cd-b41d-1d5d-1491-

元記事を表示

FSCalendarのカレンダーにイメージ画像を表示する

#はじめに
カレンダー付きToDoアプリを制作する際にFSCalendarというライブラリを使用しましたので備忘録として投稿します。
初学者ですので訂正点ございましたら、ご指摘よろしくお願いします。

#概要
FSCalendarではカレンダーの日付の下に任意の条件でイメージ画像を表示することができます。
制作したアプリの用途に絡めると「ToDoの登録のステータスが完了済である日付にイメージ画像を表示」になります。

今回はRealmSwiftを組み合わせての実装になりますのでRealmSwiftに関しましては[こちら](https://realm.io/jp/docs/swift/latest/)参照ください。
また、FSCalendarの導入に関しましては[こちら](https://github.com/WenchaoD/FSCalendar)を参照ください。

#実行環境
【Xcode】 Version 11.7
【Swift】 version 5.2.4
【CocoaPods】version 1.9.3
【RealmSwift】 version 5.3.2
【FSCalen

元記事を表示

FSCalendarのカレンダーに点マークを表示する

#はじめに
カレンダー付きToDoアプリを制作する際にFSCalendarというライブラリを使用しましたので備忘録として投稿します。
初学者ですので訂正点ございましたら、ご指摘よろしくお願いします。

#概要
FSCalendarではカレンダーの日付の下に任意の条件で点マークを表示することができます。
制作したアプリの用途に絡めると「ToDoの登録がある日付に点マークを表示」になります。

今回はRealmSwiftを組み合わせての実装になりますのでRealmSwiftに関しましては[こちら](https://realm.io/jp/docs/swift/latest/)参照ください。
また、FSCalendarの導入に関しましては[こちら](https://github.com/WenchaoD/FSCalendar)を参照ください。

#実行環境
【Xcode】 Version 11.7
【Swift】 version 5.2.4
【CocoaPods】version 1.9.3
【RealmSwift】 version 5.3.2
【FSCalendar】version 2.

元記事を表示

OTHERカテゴリの最新記事