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

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

【Swift】位置情報を取得する

# 概要

swiftで位置情報を取得する方法について、まとめました。

startUpdatingLocation() で位置情報の取得を開始し、取得した場合 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) が呼び出され位置情報を確認することだできます。

“`
class ViewController: UIViewController, CLLocationManagerDelegate {

var locationManager : CLLocationManager?

override func viewDidLoad() {
super.viewDidLoad()

locationManager = CLLocationManager()
locationManager!.delegate = self

元記事を表示

【SwiftUI】ビューをジェスチャーで回転させ、90°ずつスナップを効かせる方法

#【SwiftUI】ビューをジェスチャーで回転させ、90°ずつスナップを効かせる方法
こんにちは、たいちです([@taichi_swift_](http://twitter.com/taichi_swift_))

>たかし「お絵かきアプリとかでよくある、ビューを回転させて90°づつピタって止めるやつ、どうやって実装するんだろ…」

こちらのお悩みを解決します。

##ビューを回転させる方法
まずは、基本のビューを回転させる方法です。
SwiftUIでは、
`.rotationEffect(_ angle: Angle, anchor: UnitPoint = .center)`
というmodifierを使用します。

実際に使うときには、
`.rotationEffect(Angle(degrees: 90))`
みたいに使うわけですね。

IMG_1985 2.jpg【SwiftUI】基本的なモディファイアの種類と使い方②

テキストの装飾に関するモディファイア

#lineLimitモディファイア
文字列の表示行数の最大値を設定
例:文字列”hogehoge”を20回繰り返して3行に収める

“`swift
Text(String(repeating:”hogehoge”,
count:20))
.lineLimit(3)
“`

#truncationModeモディファイア
文字列を省略する場所を指定
例:文字列の中心が省略

“`swift
Text(String(repeating:”hogehoge”,
count:20))
.lineLimit(1)
.truncationMode(.middle)
“`

#lineSpacingモディファイア
行間の幅を指定 
cssのline-heightと同じ

“`swift
Text(“hogehoge”)
.lineSpacing(50)
“`

#fontモディファイア
フォントの種類を指定
種類:
largeTitle:大きなタイトル
title:タ

元記事を表示

XCODEからiPhoneにアプリが送れなくなった

XcodeからiPhoneにアプリが送れなくなった。全然コードの問題じゃなさそうで、
「iPhone is not available. please reconnect the device.」
っとだけでてきて、iPhoneは認識しているのにアプリが転送されない。
散々調べた結果、これだった。。。。

まじかよー
https://stackoverflow.com/questions/61863826/iphone-is-not-available-please-reconnect-the-device

Xcodeのアプデートで完了。

元記事を表示

[Flutter] Apple Watchの呼吸アプリのアニメーションを作ります。

こんにちは~Dreamwalkerです。
もう夏ですね。暑いです

# 始める前に

呼吸アプリを利用している方いらっしゃいますか?
ストレス溜まっている時、とてもおすすめです。

こんな形のアプリなんですが、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137182/49d898c2-8974-ecff-64c4-da1cb0d00f2a.png)
Use the Breathe app https://support.apple.com/en-us/HT206999 

この呼吸アプリのアニメーションをFlutterでやってみまいと思います。

# コード

## CustomPaint Widgetを使います。

CustomPaintの中にはPainterというのが必要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137182/d978b2cf-1e5c-ee7a-3b

元記事を表示

【Swift】Protocolとはなにか、どんな時に便利か

# Protocolとは
Protocolとはある機能を実現するclassやstructが必ず実装するべきメソッドやプロパティの名前や型を定義するものです。
他の言語いう抽象クラスやInterfaceにあたります。

“`swift
protocol CanFly {
func fly() // 実際の処理は書かない
}
“`
protocolを定義するときは、必要なメソッドやプロパティの名前や型を定義するのみで実際の処理は書きません。

# どんなときに便利か
特定のclassやstructが持っているべき要件(このメソッドやプロパティを持っているべき)を適用したい場合に便利です。
例えばBirdクラスを作ります。鳥の特徴は空を飛べて、メスは卵を産みますね。

“`swift
class Bird {
var isFemale = true
func layEgg() {
if isFemale {
print(“トリは卵を産みました”)
}
}
func fly() {
print(“トリは翼で羽ばたいて空を飛びました”)
}
}
“`

元記事を表示

【Swift】QRコードを読み取って文字列を取得する

簡単に実装したサンプルです。参考になると幸いです。
[asa08/QRreader](https://github.com/asa08/QRreader)

## カメラを設定する
`import AVFoundation`して、`AVCaptureSession`をインスタンスを生成します。

“`swift
private let session = AVCaptureSession()
“`
次に、カメラの設定を行います。

“`swift
// カメラの設定
// 今回は背面カメラなのでposition: .back
let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: .video, position: .back)

let devices = discoverySession.devices
if let backCamera = devices.first {
do {
// カメラでQR

元記事を表示

DribbbleでFlutterのUI実装力を高める

みなさん、こんにちは
とあるサラダ?の会社で開発やってます umatoma です。

最近はFlutterのUI実装力を高めようと、
Dribbbleで公開されているデザインをFlutterで再現してみているので、紹介したいと思います。

# Dribbble

https://dribbble.com/
> Dribbble is the world’s leading community for creatives to share, grow, and get hired.

Dribbbleには?のように、様々なデザインが投稿されていて、
アプリUIに関するデザインも沢山?あります。

また、動画で投稿されているものもあったりして、
アニメーションを含んだデザインが見れる点はとても良いです?

で、このDribbleで公開されているデザインをFlutterで再現して、
FlutterのUI実装力を高めようと試みています???

![スクリーンショット 2020-05-22 19.49.39.png](https://qiita-image-store.s3.ap-northe

元記事を表示

Apple Developer Programの契約からアプリ公開まで4ヶ月かかった話

# 概要
個人開発でiOSアプリを製作したかったので、Apple Developer Programを契約したが、公開まで予想以上に時間がかかったので経緯を記しておく。

**正直、かなり舐めていた。**
契約したらその日にアプリをアップロードして審査、1週間後にはリリースぐらいに考えていた。
**実際には契約してからアプリ公開まで4ヶ月を要した。**

# 経緯
– 01/26 Apple Developer Programを契約、$99(時価で税込¥12,980)支払い発生

– 01/27 Apple Developer及びApp Store Connectにアクセスできるようになる

– 01/31 20:30 App Store Connectから初めてのアプリ提出、ステータスが「Waiting For Review」になる

– 01/31 21:30 ステータスが「In Review」になる

– 01/31 21:40 リジェクト。メッセージは以下の通り

>Hello,
We are unable to continue this app’s review b

元記事を表示

Sign in With AppleでSandboxアカウントを使う

# はじめに

2020/5/22 現在の情報です
Sign in With Apple(以後、SIWA)でSandboxアカウントを使う為のメモです

SIWA自体やInAppPurchaseについての対応は割愛します。

## 流れ

1. よし、SIWAの実装確認できた
2. 課金周りテストするか、Sandboxアカウントでログインして
3. SandboxアカウントでSIWAログインできるのかな?まぁ、やってみるか
4. お、できた。メールにPIN送ったから入力しろって。
5. よし、入力完了。次は?。2FA認証が必要です。設定を開いて〜
6. 「お客様のApple IDでは、現在2ファクタ認証をご利用できません」 :thinking:

で困っていたら、[Apple Developer Forums][LINK-1]にあったので共有と解説です

## 準備作業

### ブラウザで作業

1. [icloud.com](https://www.icloud.com/)にアクセスして、sandboxアカウントでログイン。

2. メールアドレスを確認する

元記事を表示

ポストコロナ時代の歩き方。~密違反監視カメラ作った~

![output2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13338/19008082-c62e-6c29-bef3-2b354ac66eb6.gif)
やぁ、やぁ、自粛解禁ムードになってきてみなさん油断していないですかね?
そんな悪い子たちのために密違反監視カメラ作りやした。
iOSのアプリで人の密を判定するアプリを作って、そのライブ映像を見れるサイトを作りました。

コンセプトは車のスピード違反取締りのオービスみたいな感じで、
人が密違反をしていたら、写真を撮ってしまうぞ!
という怖い監視カメラです。

ライブ映像はこちらから見れるますたぶん。
https://orbisforwalkers.tokyo
(5/22の午後14:00~18:00くらいの間だけ試しにライブ配信やります。それ以外は未定です。)
見れてなかったらごめんなさい、、

## 背景
コロナ便乗 創作欲求満たすぜ大喜利!!と言われたら反論はできない。
コロナ禍の中で、一線の研究者達が世界のために日々闘う姿をみて感動し、凡人

元記事を表示

【swift】singleton(シングルトン)とその代替案について

# はじめに
今回は、シングルトンについて書いていこうと思います!
シングルトンとはなんぞやと言うところから、シングルトンを使う場面やメリットについて公式ドキュメントを元に書いていきます!

公式doc:[Managing a Shared Resource Using a Singleton](https://developer.apple.com/documentation/swift/cocoa_design_patterns/managing_a_shared_resource_using_a_singleton)

# 共有リソースの管理者:シングルトン

公式ドキュメントのタイトルにある通り、シングルトンは共有リソースにアクセスします。
ざっくり言えば、**インスタンス内の値を変更後、別のインスタンスを生成しても前者のインスタンスの更新内容が反映されるどういった処理が可能になります。**

つまり、**インスタンスが1個しか生成されないことを保証します。**

イメージとしては、こちらの記事がとても参考になるので一読をお勧めします!
[シングルトンについて swift](h

元記事を表示

iPhoneからの転送時のエラー

iPhoneとPC(Windows)をUSB接続し、写真や動画などをコピーする際に、
「システムに接続されたデバイスが機能していません」/「A device attached to the system is not functioning(英語OSの場合)」
というエラーが出る場合は、

iPhone側で、設定-写真-「MACまたはPCに転送」項目で、「自動」を「元のフォーマットのまま」に変更してみる

元記事を表示

Flutter で Firebase Crashlytics を使おうとすると ネットワークエラーが発生する問題

結構ハマったので共有します。
# 概要
FlutterでFirebaseのCrashlyticsを使おうと、手順通りに設定していったのに、下記のエラーがでて疎通できない問題についてです。

“`
[Fabric] failed to download settings Error Domain=FABNetworkError Code=-5 “(null)” UserInfo={status_code=403, type=2, request_id=, content_type=application/json; charset=utf-8}
“`
Crashlyticsの画面も疎通待ちのまま更新されません。。。
![Screen Shot 2020-05-22 at 7.28.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315258/50e6f861-c910-5b11-020c-a79a0a5eb804.png)

# やったこと
まずは、FlutterとFirebase自体を接続し

元記事を表示

【SwiftUI】基本的なモディファイアの種類と使い方①

#bodyプロパティ
定義:var body: Self.Body
ContentViewではカスタムビューの内容を記述する
複数のViewを組み合わせるにはVStackなどを使用してひとつにまとめる必要がある。

#frameモディファイア
フレームのサイズとビューの配置位置を指定

“`swift
func frame(width: ,height: , alignment: ,)
alignmentの種類
center,leading,trailing,top,bottom,topLeading,topTrailing,bottomLeading,bottomTrailing
func frame(minWidth: ,idealWidth: ,maxWidth…..)
“`
cssでいうwidth,height,

#fixedSizeモディファイア
ビューの表示を固定

“`swift
func fixedSize() -> some View
func fixedSize(horizontal:Bool,vertical:Bool) -> some View
ho

元記事を表示

UILabelの三点リーダーの位置のバラツキの調査

※調査記事の為、誤りが含まれている可能性があります。

## はじめに
様々なアプリでUILabelが使われていますが、UILabelにおいて指定の領域を超えた文字数を保有する場合、領域外の文字は三点リーダー以降切り捨てられます。(見た目上は)
そこで、UILabelの三点リーダーの位置のバラつきが気になったので試してみました。

## 試した内容
下記で試した文字列の長さに対して、UILabelのwidthは短い長さに設定しました。

|文字列|三点リーダーより前の文字列の文字数|三点リーダー|
|—|—|—|
|aaaaaaaaaaaaaaaaaa|2|![スクリーンショット 2020-05-21 22.47.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/559964/46f8bd00-c57d-c195-6ce4-67ed03bba24a.png) (下)|
|aaaaaaaaaaaaaaaaaaあ|2|![スクリーンショット 2020-05-21 22.47.53.pn

元記事を表示

UITextViewの文字を複数リンク化させる方法

# はじめに
![スクリーンショット 2020-05-21 19.19.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/171702/74f0fdea-4314-cfaf-8c49-39a564021f4e.png)

iOSが意外に苦手なリンク化
HTMLみたいにタグで囲った範囲をリンク化する!みたいに出来たら便利なのですが、出来ないので

リンク化したい文字列の場所とタップした位置でゲームみたいに当たり判定でリンクをタップしたか判定します!

ViewController + Storyboardで解説

# Storyboard(Xibでも可)にUITextViewを貼り付ける
![スクリーンショット 2020-05-21 16.35.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/171702/70628ff2-c9d3-6595-240b-4d01592824ca.png)

制約も適当に張ります。

元記事を表示

【Swift】@testable import no such module “xxx” というエラーが出る

Xcodeでユニットテストを実行しようとしたらタイトルのエラーが出てしまった。
そんなモジュールは存在しないよと怒られてます。

### :tools: TestのTargetの「Host Application」が設定されていない
スクリーンショット 2020-05-21 16.11.08.png

上記の、タブ画面でHostApplicationが「None」になっていないか確かめる。
もしなっていたたら現在自分が開発中のアプリをターゲットにしてあげる。

### :computer: プロジェクト名などを途中で変更した場合
テストファイル内の

“`Swift
@testable import test
“`

上記でいう「test」の部分は自動で更新されない。。
ので自分で修正してあげる必要がある。

元記事を表示

AR Quick Lookで3DモデルをAR表示する

AR Quick Lookを使用すると、iOSのSafariで3DモデルをAR表示することができます。

[Quick Lookギャラリー \- 拡張現実 \- Apple Developer](https://developer.apple.com/jp/augmented-reality/quick-look/)

AR Quick LookではUSDZ形式の3Dモデルが必要になります。USDZ形式以外の3DモデルをUSDZファイルに変換するには上のリンク先のページ下部にある「Reality Converter」と「USDZツール」のどちらかを使用します。

Reality ConverterはGUIアプリで、USDZ形式以外の3Dモデルをアプリにドラッグ&ドロップしてメニューからExportするだけでUSDZファイルを生成することができます。

USDZツールを使用する方法も解説します。2020年5月20日現在の最新版である`USD Python 0.64`をダウンロードして、含まれているパッケージをインストールします。インストールするとアプリケーションフォルダに`usdpyth

元記事を表示

【Swift】SVProgressHUDの表示がiOS13以上だとおかしくなる

結構古くからある「SVProgressHUD」というローダーのライブラリがあります。
癖が無くて使いやすいのですが、iOS13.0で動かしてみたら画面中央では無く何故か左上の隅っこに表示されてしまいました。

![72616955-f5fd9580-395d-11ea-93e3-9d0310f525bb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55603/90e46151-1fde-4a66-71d7-f00666311bc6.png)

## 対応策
#### AppDelegate.swift

“`Swift
static var standard: AppDelegate {
return UIApplication.shared.delegate as! AppDelegate
}
“`

#### SceneDelegate.swift

“`Swift
func scene(_ scene: UIScene, willConnectTo session: UISceneSe

元記事を表示

OTHERカテゴリの最新記事