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

iOS関連のことを調べてみた2020年10月17日
目次

(初心者向け) SwiftUIのビュー要素のコレクション

これは、`SwiftUI` の共通のビュー要素のコレクションです。`SwiftUI` を学び始めた初心者向けです。

[SwiftUI ビューの基本フォーマット](#swiftui-ビューの基本フォーマット)

[変数の型](#変数の型)

[プレビュー](#プレビュー)

[出発点](#出発点)

[iOS 14 の新機能](#ios-14-の新機能)

[文字](#文字)

[画像](#画像)

[Table](#table)

[Navigations](#navigations)

[アクションを実行するにはユーザーに別のビューを表示するには](#アクションを実行するにはユーザーに別のビューを表示するには)

[タブバー](#タブバー)

[指定したオプションから1つの値を選択](#指定したオプションから1つの値を選択)

[画面に複数の要素を表示](#画面に複数の要素を表示)

[アラート / アクションシート](#アラート–アクションシート)

[View modifiers](#viewmodifier-ビューモディファイア)

[UIKit + SwiftUI](#u

元記事を表示

Core ML ToolsのチュートリアルをGoogle Colabで簡単に試す方法(環境構築不要)

[Core ML Toolsのドキュメントサイト](https://coremltools.readme.io/docs/what-are-coreml-tools)にある、チュートリアルであるQuick StartをGoogle Colabで試してみたので、その手順を書きます。環境構築が不要で、なるべくサクッと実行できる手順を書いています。

対象のサイトはこちらです。
[Apple Core ML Tools Quick Start](https://coremltools.readme.io/docs/introductory-quickstart)

### 手順

**1.Google Colabを起動する**
※Colab = Colaboratoryの略です

Google Colaboratoryのサイトにアクセスします。
[Google Colaboratory](https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja)

![image.png](https://qiita-image-stor

元記事を表示

iOSアプリ開発:タイマーアプリ(2.タイマーの表示)

##記事内容
タイマーアプリを作成するためのポイントを複数記事に分けて掲載しています。
この記事では、メインの機能となるタイマー部分を表示させる方法について掲載します。

##開発環境

– OS: macOS 10.15.x
– エディタ: Xcode 11.x
– 言語: Swift

##手順概要

1. TimerViewを作成する
2. TimerViewとPickerViewの表示切り替え用Boolean型プロパティをTimeManagerクラスに作成
3. MainViewを作成する
4. MainViewにPickerViewとTimerViewを配置する
5. PickerViewの確定ボタンをタップするとTimerViewに切り替わるようにする

##1. TimerViewを作成する

TimerView.swiftという名前の新しいファイルを作成し、同名Viewのstructを用意します。

“`swift:TimerView.swift
import SwiftUI

struct TimerView: View {
var body: some

元記事を表示

for-in文を理解しよう!

今回は、for-in文について学習したので、アウトプットしていきます
※以下の内容は、学習内容のアウトプット用のため、誤りがある場合があります。予めご了承ください

#for-in文とは?
***for-in文は各要素を実行文に順次渡しながら、その要素の数だけ繰り返しを行います。***

基本的な書き方は以下の通りです

“`swift:qiita.rbvar
for 要素名 in シーケンス {
要素ごとに繰り返し実行される文
}
“`

※シーケンス・・・連続(しているもの)、一続き(のもの)、順序、順番、並び、配列(する)、逐次、並べる、順序付ける、などの意味を持つ。

次は簡単な例を見ていきましょう。

“`swift:qiita.rbvar
1.let array = [1,2,3]
2.for element in array {

print(element)
}
実行結果
1
2
3
“`
上記の例では、配列array内の値に、定数elementを通じて1つずつアクセスしています。

Dictionary型の要素をfor-inで列

元記事を表示

【ReactNative】iOS14に関する不具合等のまとめ

# 概要
`iOS14`が正式にリリースされ、`ReactNative`で開発したアプリにも少なからず影響が出ています。
個々の事象については、既に有志の方が記事に起こしてくれていますが、それらを俯瞰して確認できるとより便利だと思ったので記事にしました。

以下、確認されている事象と対応まとめです。

# 確認されている事象

## 日付関連

### `DatePickerUI`がホイールでなくなる

– [iOS14のDatePickerUIがホイールじゃ無くなっている](https://qiita.com/ryunosuke0922/items/30fe20323561d6c0c124)
`AppDelegate.m`の`didFinishLaunchingWithOptions`に記述を追加

“`
if (@available(iOS 14, *)) {
UIDatePicker *picker = [UIDatePicker appearance];
picker.preferredDatePickerStyle = UIDatePickerStyleWheels

元記事を表示

titleTextAttributes指定時のフォント指定忘れ対策

## 概要
iOS のナビゲーションバーの文字色を変更するためにtitleTextAttributesを指定してみたら、フォントが崩れたので対応。

## 環境
Xcode 11.3
iOS 14.0 & 13.3

## 事象と対策
ナビゲーションバータイトルにフォント指定しているばあい、
色だけ指定しても、フォント指定が外れる

– フォントを(xibで)ヒラギノ角ゴシックにしている場合
![スクリーンショット 2020-10-16 16.30.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36475/cbe49eb8-1222-0530-ed93-57bd48f855e2.png)

– 特定画面でフォントの色変えたいと思って、よくあるように色だけ指定するとフォント指定が外れる(システムデフォルトになっている?)

“`
self.navigationController?.navigationBar.titleTextAttributes = [
  // 文字の色

元記事を表示

[iOS]AutoLayoutでviewをコピペしたらAuthLayoutが効かなくなってしまう問題への対応方法

長いこと謎だったんですが、UIStoryboard内のUIViewController直下のviewをコピーして貼り付けると、AutoLayoutができない状態になりますよね。

イメージ:ここの選択してるviewをコピペすると、上のようにSafeAreaがくっついてきて

![スクリーンショット 2020-10-16 16.15.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20784/36f764ec-9eaa-0cdb-9b3b-6a9832e3b51e.png)

Autolayoutができない状態に!

![スクリーンショット 2020-10-16 16.16.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20784/4a444586-bdfd-5d7a-4bdf-66ed05265bfb.png)

## 解決するには

どうやらLayoutがAutoresizingMask(AutoLayout

元記事を表示

switch文を理解しよう!

今回は、switch文について学習したので、アウトプットしていきます
※以下の内容は、学習内容のアウトプット用のため、誤りがある場合があります。予めご了承ください

#switch文とは?
***switch文を一言でいうと、パターンを利用して制御式の値に応じて実行文を切り替える制御構文です。***

基本的な書き方は以下の通りです

“`swift:qiita.rbvar
switch 制御式 {
case パターン1:
制御式がパターン1にマッチした場合に実行される文

case パターン2:
制御式がパターン2にマッチした場合に実行される文

default:
制御式がいずれのパターンにもマッチしなかった場合に実行される文
}
“`

switch文は、一度マッチして実行文を実行するとマッチングを終了し、それ以降のパターンはスキップするという特徴を持ちます。
if文やguard文は成立するか否かの2つのケースへの分岐でしたが、***switch文はさらに多くのケースに分岐できます。***

次は簡単な例を見ていきましょう

“`swift:qiita.rbvar
le

元記事を表示

iOSアプリ開発:タイマーアプリ(まとめ)

##記事内容
タイマーアプリを作成するためのポイントを複数記事に分けて掲載していきます。タイマーだけで寂しいので、複数人のプレゼンテーションでの進行にも役立つような機能も。

##タイマーアプリの主な機能

+ タイマーをセットする
+ タイマーを表示する
+ スタート/ストップ/リセットボタン
+ プログレスバー
+ アラーム・バイブレーションを発動する
+ 設定画面
+ プレゼンテーションモード
+ 発表者リスト
+ 発表者設定画面

##開発環境

– OS: macOS 10.15.x
– エディタ: Xcode 11.x
– 言語: Swift

##手順

1. [iOSアプリ開発:タイマーアプリ(タイマーをセット)](https://qiita.com/masanaosako/items/e379618fde48fbfc46b3)
2. [iOSアプリ開発:タイマーアプリ(2.タイマーの表示)](https://qiita.com/masanaosako/items/155db83037ea23efa418)
3. 以降順次アップ予定

##補足

Xcode

元記事を表示

iOSアプリ開発:タイマーアプリ(1.タイマーをセット)

#記事内容
タイマーアプリを作成するためのポイントを複数記事に分けて掲載しています。
この記事では、タイマーにカウントダウンする最大時間を設定するViewの作成について掲載します。

#開発環境

– OS: macOS 10.15.x
– エディタ: Xcode 11.x
– 言語: Swift

#手順概要

1. TimeManagerというClassを用意
1. TimeManagerに、カウントダウンの時間を格納するためのプロパティを作成
1. PickerViewというViewを用意
1. PickerViewにコンポーネントとしてPickerを配置する
1. TimeManagerに、画面上で設定した時間をプロパティに反映するためのメソッドを作成
1. TimeManagerに、カウントダウン中の残り時間を表示するためのメソッドを作成

##1. TimeManagerというClassを用意
TimeManager.swiftというファイルを作成し、同名のClassを作成します。
のちのちのことを想定してObservableObjectというプロトコルを適用します

元記事を表示

【Unity】 iOS端末のミュージックライブラリから曲を取得して再生させる

UnityでiOS端末のミュージックライブラリの曲が必要になったのですが、参考になるサイトの情報が不足してエラーまみれになったり、記事自体が古かったので備忘録としてまとめます。

Objective-Cは、触って4日間の超初心者クオリティなので無駄なところがあるかもしれません。

AppleMusicの曲やDRMで保護がかかった曲は再生できないのでご了承ください。
(iTunesで購入した曲やCDからインポートした曲の再生は確認済み)

# 取得までの流れ

1. 直接はUnityからアクセス出来ないのでObjective-Cでミュージックライブラリにアクセス
2. Objective-Cでアクセスできても曲自体は直接取ることができないのでアプリのDocumentsフォルダ以下に曲をwav形式でエクスポート
3. DocumentsフォルダならUnityから直接アクセス出来るのでエクスポートしたwavファイルをWWWを用いてAudioClipに変換
4. 取得したAudioClipをAudioSourceにセットして再生!

今回はミュージックライブラリから1曲だけランダムで取得して再

元記事を表示

元自衛官実務未経験から受託開発企業から内定もらうまで

今回の記事はタイトル通り実務未経験から企業から内定もらうまで私がどんなことをしたのかを紹介します。
予め言いますがこれが私個人の経験からですのであくまで参考に、、、

#大まかな筋道
海軍将校になりたくて海自入る->こんな仕事もう嫌ァァァ

辞めた

なんか稼げる仕事ないかな、、、(Youtube漁る)

プログラミングって結構稼げるんだ
とりあえずエンジニア界隈でイケてたKB○Yさんを見習ってFlutterを独学で勉強

挫折

プログラミングスクール通う
なんとなくiOSコースを受講
割とできそうだった

友達の大学生は就活真っ最中で自分も仕事したいと焦る
勉強会やスクールのメンターと話たりしてどんな方法が稼ぐのに最適か調べた
エンジニアとして一番稼げるのは個人で案件を獲得するいわゆるフリーランサー
じゃあiOSの案件ってどんなのあるの
実務経験者募集がほとんど。応募してみてもやっぱダメみたい。
自分がどんなことできるのかアピールできるものが必要->ポートフォリオ
これを宣伝してアピールできないかな

ムリだった、、笑
じゃあ仕事するか。技術磨いてまた挑戦しよう。1ヶ

元記事を表示

ARKit + Metalで手をゆらゆらさせてみる

ARKitとMetalを使って手をゆらゆらさせる方法を紹介します。

仕上がりは、こんな感じです。
![20201015_qiita用_ショート.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116010/009344c3-972d-3374-37b9-05b9df796b69.gif)

### 考え方

ARKitのPeople Occlusionを使用します。

People Occlusionを使用すると人型のマスクテクスチャが得られるので、そのマスクとカメラの画像を同時に歪ませて、歪んだ合成用画像を取得します。歪んだまま切り取る感じです。

こんな画像が取得できます(わかりやすくするために動画よりも強めに歪ませています)

この歪

元記事を表示

UnityでAR Foundationを使ってiOS向けARアプリを開発する(備忘録)

# はじめに
iOS向けARアプリケーションをUnityを用いて開発したときに、詰まったり調べたことを自分への備忘録として残しておきます。
現在進行形で勉強しているので、随時変更していきます。

### 開発環境

– **Windows 10 Home**
– Unity (2019.4.1f)
– AR Foundation (4.0.2)
– AR Subsystems (4.0.1)
– ARKit XR Plugin (4.0.2)
– **MacBook Pro** (macOS Catalina)
– XCode (12.0.1)
– **iPhone7** (iOS 14.0.1)

### 導入

1. [ここ](https://github.com/Unity-Technologies/arfoundation-samples/tree/4.0)からAR Foundation samplesをダウンロード
2. Unityでプロジェクトファイルを開く
3. File -> Build Settings から Platf

元記事を表示

【iOS】シミュレーターでソフトウェアキーボードを使う

#ソフトウェアキーボード が表示されない場合の対処方法#

メニュー から ソフトウェアキーボード と ハードウェアキーボード を切り替えることができます。
**i/O > Keyboard > Connect Hardware Keyboard**
![switch_keyboard.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535406/bd999d5d-1d52-269d-4e50-8c4513e66705.png)
ショートカットは **Shift + ⌘ + K** です。

元記事を表示

[iOS]Google Mobile ADs(バナー広告)の導入

## 作業

[Firebase を iOS プロジェクトに追加する](https://firebase.google.com/docs/ios/setup)

– 後から行う作業としてApp Store ID追加あり。App Store IDとは、iOSアプリのApp Store上でのID。App Store ConnectのMy Appのところから確認できる他、公開済みのアプリの場合、App Store上でのURLの末尾がApp Store IDとなっている。

[複数のプロジェクトを構成する場合の注意点](https://firebase.google.com/docs/projects/multiprojects)
[使ってみる – Google Mobile ADs SDK](https://firebase.google.com/docs/admob/ios/quick-start?hl=ja)
[バナー広告](https://developers.google.com/admob/ios/banner?hl=ja)

– アプリ公開後にApp Store ID追加あり

元記事を表示

play.jsとWorking Copyで、iPad上にNode.js実行環境を構築する。

iPad miniでNode.js実行環境を構築できたので、まとめてみました。

## この記事でできること

– iPadでNode.jsをローカル実行する。
– iPadからGitHub上のリポジトリに対してpush / pullする。

## 注意事項

これから紹介するNode.js実行アプリは、エミュレータであり、
本家Node.js / npmの一部しかサポートしていないので、
PCでできることがそのままできたりはしないことに注意してください。

## 筆者のハードウェア環境

– iPad mini 第5世代
– Ewin Bluetooth Keyboard ([Amazon](https://www.amazon.co.jp/dp/B081GYXN2M/ref=cm_sw_em_r_mt_dp_ARXHFb90Q8MQN))
– ロジクール ワイヤレスマウス Pebble SE-M350OW ([Amazon](https://www.amazon.co.jp/dp/B07SK1YZMY/ref=cm_sw_em_r_mt_dp_zVXHFbRKYWBHQ))

##

元記事を表示

iOS14で動画再生中、バックグラウンド移行時に一時停止されてしまう問題への対応

# 対応

* **`playerView.player = nil`**
* **`playerView.player = player`**

**の実行タイミングを変更する**

“`
@objc func applicationWillResignActive(_ notification: NSNotification?) {
playerView.player = nil
}

@objc func applicationDidBecomeActive(_ notification: NSNotification?) {
playerView.player = player
}

“`

# 経緯

* ユーザー「iOS14にアップデートしたらバックグラウンド再生がおかしい。なんとかしろ:rage::bangbang:」
* ワタクシ「:sob:」

# 対応前

* `applicationDidEnterBackground` で `playerView.player = nil` していた ※Appleさんの公開しているドキュメントの記載内容に従ったも

元記事を表示

iOS14のSwiftUIではリストのスクロール処理をコードで制御できるようになった

# はじめに

iOS13のSwiftUIではできなかったコードによるリストのスクロール処理が、iOS14ではできるようになりました。
本記事でその実装方法をまとめています。

## iOS13でのスクロール処理

iOSアプリを開発しているとよくある「○番目のセルに自動でスクロールする」という処理ですが、
これをiOS13のSwiftUIでは実現する方法がありませんでした。

“`swift
struct ContentView: View {
var body: some View {
List(0..<100) { Text("\($0)") } } } ``` UIKitでは以下のような形で、`scrollToRow`, `scrollToItem`などのメソッドを呼び出す形で該当の要件を簡単に実装できるので、 この機能のためだけに`UIViewRepresentable`, `UIViewControllerRepresentable`などを利用することもしばしばありました。 ```swift //

元記事を表示

Cookiecutterを使って爆速でiOSプロジェクトを作成する

![cookiecutter_medium.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6691/6fa8fca6-d843-a740-d6b7-1f3fb3fcf98a.png)

## はじめに

あなたは開発スタート時に毎回新しいXcodeプロジェクトを作っていませんか?
過去のプロジェクトから使ってもいいヤツらを 「Add Files to」していませんか?
xcconfigやcarthageの設定を毎回行っていませんか?

そうです、まさに私のことです。

というわけで、開発初期のスピードを加速させるべく
[Cookiecutter](https://github.com/cookiecutter/cookiecutter) というPythonのツールを利用して `コマンド一発`で
iOSプロジェクトを作成している例があったので真似してみることにしました。

## クイックスタート

サンプルとしてCleanArchitectureでの開発用テンプレートを作成してみました。
https:/

元記事を表示

OTHERカテゴリの最新記事