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

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

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

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

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

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

###開発環境

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

###手順

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

元記事を表示

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

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

元記事を表示

【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`, `scr ollToItem`などのメソッドを呼び出す形で該当の要件を簡単に実装できるので、 この機能のためだけに`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:/

元記事を表示

[Unity]Core Hapticsを使ってiOSでバイブレーションを自由に動作させる

# 単純なバイブレーションの実装
 Unityでは

“`
Handheld.Vibrate ();
“`

というメソッドが用意されていて、iOSでもAndroidでも振動させるだけならこれ一つで実現できます。
が、これは **ただ1秒くらい「ブーン」となる以外に何も調整ができず** 、UXや演出として利用するには流石に “わびさび” が足りません。

# ちょっと凝ったバイブレーションの実装

 ちょっとだけ手間ですが、iOS、Androidのネイティブ処理を呼び出すことで少し融通の利くバイブレーションを実装できます。下記の記事が分かりやすくまとまっていて、参考になります!

* **[【Qiita】Unityでモバイル端末のバイブレーションをコントロールする](https://qiita.com/mrhdms/items/3201baf851a91875fa29)**

 Androidは端末のバリエーションが多すぎる故か、これで **振動時間を調整するのが限界** ですが、一応Unityに用意されたメソッドを呼ぶよりはマシなバイブレーションが実装できるはずです。

 

元記事を表示

swift実践入門output Chapter4 コレクションを表す型 後編

##CollectionとしてのString型

String型は単一の文字を表すCharacter型のコレクションとして定義されており、文字の列挙や文字数のカウントなどの機能を持つ

“`chapter4.swift

//StringIndex型 文字列内の位置を表すかた
let string = “abcdefghijelmnopqustuvwxyza”
let startString = string[string.startIndex]
print(startString)

//a

//n番目、最後のindexを取得するには
let string2 = “abcdefghijelmnopqustuvwxyza”
let startString2 = string2.startIndex

let bIndex = string.index(startString2, offsetBy: 8)
print(bIndex)
let bb = string[bIndex]
print(bb)

//i

let endString = string2.endIndex
le

元記事を表示

swift実践入門output Chapter4 コレクションを表す型 前編

#コレクションとは値の集まりのこと

配列を表す
Array< Element>型

辞書を表す
Dictionary< Key, Value>型

範囲を表す
Range< Bound>型

##配列を表す Array< Element >型
実際にはArray< Int >型、Array< String >型のように使う

“`chapter4.swift
let a = [1,2,3]
let b = [“a”,”b”,”c”]

let array :[Int] = []

var strings = [“aaa”,”bbb”,”ccc”]
var strings1 = strings[0]
print(strings1)

//aaa

strings[2] = “gagaga”
print(strings)

[“aaa”, “bbb”, “gagaga”]

//末尾に追加
strings.append(“yamato”)
print(strings)

//[“aaa”, “bbb”, “gagaga”, “yamato”]

//任意の位置に追加
strings.

元記事を表示

SwiftでProperty List(.plist)への書き込みと読み込みを実装する

Property List(.plistファイル)へのデータ書き込みとデータ読み込みを、`PropertyListEncoder(Decoder)`と`Codable`に準拠したモデルを利用して行います。

# 前提
Swift: 5.0

# 実装
## モデルの用意
Property Listに保存したいデータのモデルを、`Codable`に準拠する形で作成します。
今回は例として、タイトルと著者名を要素に持つ`Book`をモデルとします。

“` Book.swift
struct Book: Codable {
var title: String
var writerName: String
}
“`
## データの書き込み
ファイル操作は`FileManager`を用いて行います。
先程用意したモデルを、`PropertyListEncoder`を使ってエンコードすることで、Property Listへの書き込みが行えます。

“` BookManager.swift
class BookManager {
// 扱うProperty Listの

元記事を表示

【ReactNative】タイムゾーン無し文字列をDate()に渡した時の挙動がiOS14から異なる件

# 概要
`iOS14`の公開に伴い`react-native`で開発したアプリの挙動を確認していたら、何やら日時がずれているのを発見しました。
細かく処理を追跡していったところ、どうやら`Date(string)`の挙動が若干変わったようです。

***※個人ブログで同様の記事を書いています。今後追記があればそちらを更新していきます。***

– [ネコニキの開発雑記 | 【ReactNative】iOS14とそれ以前でタイムゾーン無し文字列のDate型コンストラクタの挙動が異なる](https://nekoniki.com/20201014_react-native_ios_date_constructor)

# 環境
– `react-native@0.63.1`
– `iOS14`
– `2020/10/14`時点の情報です(今後のアップデートで修正される可能性あり)

# コンストラクで文字列を渡している場合は注意
例えば以下のように文字列から`Date`型のコンストラクタを利用した場合です。
サンプル①は`ISO-8601`の拡張形式のタイムゾーンを指定していない形式です

元記事を表示

[iOS14]ヒラギノフォント使用時のUILabelの高さ調整

## 概要
iOS14にて、ヒラギノフォントを指定していたUILabelで、 g や jといった、
下にはみ出す文字の下部が見切れるようになったので、その対応。

問題の詳しい解説などは以下などを参考にしてください

http://akisute.com/2015/11/ios.html

## 環境
Swift5
Xcode11.3 (Xcode12.0でも動作確認)

## 解決作
*正直この対応で本当に問題がないのか、あまり自信はありません。間違いなどありましたら、ご指摘いただけますと幸いです??‍♀️

Extentionで関数使って修正している情報は見つかったのですが、
今回すでに問題が起こりうるヒラギノをつかった箇所がたくさんあり、かつヒラギノの設定はxibでやっていたため、修正もxibできる方法を探しました。

サイズを調整するカスタムクラスを作成しました。
調整の内容自体は上でも紹介している以下の内容と同じです。
http://akisute.com/2015/11/io

元記事を表示

[Swift5]”IBM Watson ToneAnalyzer”を使用して感情分析を行う

## 投稿のポイント
個人アプリ開発の機能として`IBM Watson ToneAnalyzer`を用いて`感情分析機能`を実装したいので、私なりに公式ドキュメントを参考にしながら実装してみました。今回アウトプットするのは初期段階の`APIキーの取得`と、`実際に分析を行い、分析結果を表示する`といったところです。

## APIキーの取得
まず、`Watson IBM Cloud`のアカウントを作成します。下記urlから公式ページに遷移し、右上にある`登録`からアカウントを作成して下さい。
https://cloud.ibm.com/developer/watson/services
登録が完了したら下記画像のようにWatsonサービスの`ToneAnalyze`を選択してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643372/bbbe48e0-5c86-1043-7e14-b15419a1a18e.png)
続いて、リージョンを東京、プランのライトを選択して作成をクリ

元記事を表示

iOSアプリにYoutubeプレイヤーを組み込む

アプリにYoutubeプレイヤーを組み込んで制御できます。
![IMG_1516.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/529ddb7a-7d44-7cbe-c3fa-734e68065cd2.png)

[YoutubePlayer-in-WKWebView](https://github.com/hmhv/YoutubePlayer-in-WKWebView)というオープンソースライブラリをつかいます。

[Youtube公式のドキュメント](https://developers.google.com/youtube/v3/guides/ios_youtube_helper)では
[youtube-ios-player-helper](https://github.com/youtube/youtube-ios-player-helper)が使用されていますが、これは現在Apple非推奨となっているUIWebViewを使っていますので、この記事では推奨のWKWebViewにアッ

元記事を表示

OTHERカテゴリの最新記事