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

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

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/)

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

## ノベルティの量

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

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

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

## 参加しての感想

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

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

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

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

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

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

元記事を表示

辞書について

###1.はじめに

前回配列について説明したので、これまた重要な要素である辞書について説明していこうと思います。前回の配列について解説した記事のURLは以下になります。
(URL:https://qiita.com/0901_yasyun/items/6cc4c0175082e9b63d31)

###2.辞書とは

辞書とは、配列と同様に複数のインスタンスを格納できるコレクションの1種です。Swiftの辞書は**Dictionary型**ですが、配列と同様、構造体として実現されており、変数への代入などの動作によって、必要に応じて新しいインスタンスが作成されます。
1つの辞書には、キーと値の組を複数個格納でき、キーから値を検索して参照、格納を行うので、1つの辞書に含まれるキーはすべて異なります。
キーに対応する値は1つですが、異なるキーに同じ値が設定されていても問題はありません。
ただし、キーと値はそれぞれ同一の型で統一されている必要があります。

“`Swift:
var y = [“Swift”:2014, “Objective-C”:1983]
“`

この例で

元記事を表示

iOSDC2020に参加しました

どうも、ねこきち([@nekokichi_yos2](https://mobile.twitter.com/nekokichi1_yos2))です

日本最大のiOSカンファレンス、iOSDC、に初参加しました。

iOSDC2020では、ニコ生上で開催され、地方在住の僕にはとてもありがたかったです。

![スクリーンショット 2020-09-21 11.18.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284464/7fdd3475-e9f1-801b-cc8d-98757341b01d.png)

また、アーリーバード枠の参加特典も
– iOSDCのパンフレット
– 有名IT企業のステッカー
– 有名IT企業のパンフレット
と充実してて、ありがたかったです。
![スクリーンショット 2020-09-21 17.30.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284464/04b9a62b-91ed-

元記事を表示

iOS14でReact Nativeアプリで画像が表示されない

# パッチファイル作成

以下コマンドでルートディレクトリ配下に `patches/react-native+0.61.5.patch` を作成する。

“`bash
$ npx patch-package react-native

npx: 150個のパッケージを3.464秒でインストールしました。
patch-package 6.2.2
patch-package: you have both yarn.lock and package-lock.json
Defaulting to using npm
You can override this setting by passing –use-yarn or deleting
package-lock.json if you don’t need it

• Creating temporary folder
• Installing react-native@0.61.5 with npm
• Diffing your files with clean files
✔ Created file patches/react-

元記事を表示

【入門】iOS アプリ開発 #9【ゲームの状態遷移とシーケンス動作】

# はじめに
今回はゲームとしてプレイできるように、ゲームの開始からゲームオーバーなどの状態遷移や各シーケンスの動作を作成する。以下が完成イメージ。ソースコードは [GitHub](https://github.com/Kikutada/0006_GamePlayTest) に公開しているので参照してほしい。

※YouTube動画
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/nKVW342kZFo/0.jpg)](http://www.youtube.com/watch?v=nKVW342kZFo)

# 状態遷移に関する仕様書

![Image100.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678332/774f311f-2d6d-0135-d1eb-6b9460af40e5.png)

スタートモードとして、ゲームを開始する時のシーケンスが詳細に定義されている。

プレイモードはゲームプレイ中の状態で、プレイヤーがミスするとそのままのエ

元記事を表示

CATechChallengeで動画を簡単にGIFにできる追加機能をつくった

# はじめに
サイバーエージェントの3daysインターンに参加してきました。
せっかくなのでこちらで技術的な振り返りをしていきたいと思います!技術的なこと以外の振り返りはnoteにまとめるのでそちらをご覧ください。
https://note.com/lsk4f5/n/nd28c28cfc088
![embwfSW2Q8X4Y0c1600629713_1600629757.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/592713/c6516ada-be8d-9c2f-bb68-1019e09cfde9.png)

# CATechChallengeとは
今回参加したインターンはCATechChallenge(3daysiOS/Android向け開発型インターン)というもので、AbemaTVに架空の追加機能を実装するハッカソン形式のインターンです。

# 作成した機能
視聴中の動画を長押しすることでその部分のGIFが作成されツイートされる機能を実装しました(機能名募集中ですw)

# 使用した技術
言語:

元記事を表示

[Swift] protocol制約をかけた型で”Cannot use mutating member on immutable value”と言うエラーが出る場合の対処。

swift5で次のコードを実行すると
> Cannot use mutating member on immutable value: ‘hoge’ is a ‘let’ constant

と言うエラーが出ます。これにしばらくハマってしまったので解決方法を書いておきます。

“`swift
protocol Hoge{
var items:[String]{get set}
}

class Fuga:Hoge{
var items: [String]
init(_ items: [String]){
self.items = items
}
}

class Piyo:Hoge{
var items: [String]
init(_ items: [String]){
self.items = items
}
}

var hoges:[Hoge] = [Fuga([“a”]), Piyo([“a”]), Fuga([“a”])]
hoges.forEach{ (hoge: Hoge) in

元記事を表示

OTHERカテゴリの最新記事