iOS関連のことを調べてみた2021年01月18日

iOS関連のことを調べてみた2021年01月18日

[超個人的メモ] iosシュミレーターのディレクトリ構造を覗きたい時

iOSシミュレーターのディレクトリ構造を覗くには
~/Library/Developer/CoreSimulator/Devices
をひらけば良い。

参考
https://stackoverflow.com/questions/6480607/is-there-any-way-to-see-the-file-system-on-the-ios-simulator

元記事を表示

SwiftUIで作るしりとり地図アプリ

iosアプリ開発を学ぶために、位置情報を組み合わせたしりとりアプリを作成しました。
https://apps.apple.com/app/id1537582064#?platform=iphone

## なんで作ろうと思ったか
モバイルアプリ開発のスキルを身につけるために、すぐに作れるチュートリアル的なものを作ろうと思って作りました。しりとりをするだけのアプリなら1ヶ月くらいで終わるだろうと思って始めたのですが、半年もかかる壮大なプロジェクトになってしまいました。

## 利用技術
– フロント: SwiftUI
– バックエンド: Firebase  

発表されたばかりで目新しかったというだけの理由で、SwiftUIを利用しました。
Swiftそのものを触ったことがない、かつ成熟していない技術のため調べるのが難しいので大変でした。バックエンドはFirebaseのFirestoreとFunctionを活用しました。

## 完成図
### 回答画面
しりとりを回答して送信する画面。
しりとりになっていなかったり、英数字が入力されたりするとバリデーションがかかる。

元記事を表示

JUCE: iOSアプリにSplash Screen (Launch Screen) を追加する

##問題##
ボクのようなアマチュアJUCERはProjucerが無いと何もできないし、でもiOS用のアプリを作りたい。でも、iOS個別のお作法なんて知らないし、UIViewController?は?という状況でも起動時に表示されるSplash Screen(Launch Screen)を追加しなければならないが、勿論全くやり方がわからないし、世の中に転がってる情報は我々には冷たすぎる。

##神様発見##
まず、下記の記事がなければ完全に死亡でした。本当にありがとうございます。
https://qiita.com/Riscait/items/89eca8260535d020e82e
具体的には「Is Initial View Controllerがないせい」の部分です。ビンゴ!でした。

##前提##
もちろんProjucerでアプリを作っている。

##解決方法##
###Storyboardのファイルを作成###
まず、Xcode上でStoryboardなるものを作成しなければなりません。Xcodeで、メニューのFile->New->File…を選択。
![Screen Sh

元記事を表示

Swift チャットアプリのチャット画面が作りたい!

#チャットアプリのチャット画面に必要なもの
コロナ禍の中なかなか就職が決まらず暇なので、チャットアプリのチャット画面を作り方を記事にしたいと思います。
チャット画面に最低限必要なものってなんだと思いますか?
今回は僕が勝手に思う`チャット画面に最低限必要なもの`で実装していきます。
必要なコンポーネントは以下
>tableView: メッセージを一覧表示するのに使います。
MessageCell: プロフィールとかメッセージをまとめます。
profileImageView: プロフィール画像を表示をします。
messageLabel: メッセージの表示をします。

他にも送信時間表示用のlabelとかは?と思われると思いますが、データベースとか使って実際にメッセージの送受信をするわけではないので今回はこれだけにします。

#実装
まずはViewControllerの方から

“`swift
class ViewController: UIViewController {

private let tableView = UITableView()

//メッセ

元記事を表示

SceneEditorから追加したSCNActionに、コードからアクセスする

SCNActionはコードからもしくはSceneEditorから追加できます。
SceneEditorから追加する方法はApple Engineさんの以下の記事がわかりやすいかと思います。

[iOS で SceneKit を試す(Swift 3) その15 – Scene Editor の Action Editor を使ってみる](https://appleengine.hatenablog.com/entry/2017/07/04/195535)

SceneEditorで追加したアクションをコードからリピートしたり組み合わせたりしたい時に。

###ノードがアクションを持っているかどうかの確認

“`swift
node.hasActions
“`

###ノードが持っているアクションのKeyの確認

SceneEditorからアクションを追加した場合、英数字の文字列がデフォルトで割り当てられます。

“`swift
node.actionKeys
“`

###アクションの取得

たとえば、ノードに割り当てられているアクションの最初のものを取得するには以下

“`s

元記事を表示

Swift UIScrollViewの使い方

#`UIScrollView`をコードで実装
独学でアプリ制作しているんですけど、そういえば`scrollView`使ったことないなと思ったので勉強しました!
まず、全く調べずに`scrollView`を使ってみようとしました。
そのコードがこちら

“`swift
class ViewController: UIViewController {

private let label = UILabel()

override func viewDidLoad() {
super.viewDidLoad()

let scrollView = UIScrollView()

scrollView.frame = .init(x: 0, y: 0,
width: view.frame.size.width, height: view.frame.size.height)

view.addSubview(scrollV

元記事を表示

[Swift] Realmを実装して分かったこと色々

#はじめに
Realmを以下の記事を参考に実装しました。
https://qiita.com/pe-ta/items/616e0dbd364179ca284b
以下のリンクから動き確認できます。


そこから色々調べてみたので、自分なりに理解した事を書いてみようと思います。
実装の手順などは、以下の記事から確認してください。
#実装
###① importする
まずは`RealmSwift`をimportします。
`RealmSwift`が必要な箇所でそれぞれimportしてみてください。
はじめはエラーになりますので、1度ビルドする事でimport出来ます。

“`ViewController.swift
import UIKit
// RealmSwiftをimportするとエラーになるが、ビルドしたら治る
import RealmSwift
“`
###② モデルクラスの作成
ファイルの追加でswiftファイルを作成してください。
このファイルで

元記事を表示

iosアプリ開発に便利なライブラリ一覧

#概要
iosアプリ開発において、簡単に便利なライブラリを紹介します。
ライブラリのインストールはcocoa podsを利用しています。

#目次
1.Alamofire
2.AlamofireImage
3.APIkit 
4.Reachability.swift
5.ObjectMapper
6.Cadable
7.Rswift
8.lottie-ios
9.PKHUD
10.GradientCircularProgress
11.Realm Swift
12.RxSwift
13.promiseKit
14.Bright-future
15.swiftStoreKit
16.Graphs
17.SwiftDate

#ネットワーク系
### Alamofire
アプリからネットワーク通信をしたい場合、定番なツール
swift標準機能のURLRequestを使用するより、シンプルで書きやすい
###AlamofireImage
URLを指定して、ネットワーク上の画像を取得できる
###APIkit
シンプルなコードが書ける
#ネットワーク接続監視系
###Reachabilit

元記事を表示

写真を読み込んで手書きスケッチ。zoom機能付。作ってみた。

# はじめに
写真に手書きスケッチを描きこむツールは、いくつか見つかります。
しかし、ズーム機能のついたツールが見つかりませんでした。
標準のフォトやマークアップは拡大率に限界があって 使いにくかった。
だから、今回作ってみました。
uiもスクリプトで作成してみたので、1ファイルで動きます。

 コードをバンバン書ける方には 怒られそうな程注釈を書き込んでいます。
自分用のメモですが、Python勉強し始めの方には スクリプトの動作が追いやすい
とおもって残しています。
あと、試行錯誤の結果 使っていない関数が少し眠っています。

クラスを始めて使って書いてみました。

# 環境
ipad + pythonista3

# 要件
・写真を読み込んで、手書きスケッチを書き込める。
・線の色・太さは 数種類づつ用意した。
・undo機能も実装した。
・拡大縮小(zoomin zoomout)機能の実装。zoomは左上を起点にされます。
・拡大機能の実装に合わせてscrollviewを実装。

# 苦労した点
・scrollviewの実装方法とスクロールと拡大縮小の連携。
・touchイベン

元記事を表示

[Swift] core dataの基本的な実装をまとめてみた

#はじめに
core dataについて色々調べ、とりあえず実装できた状態です。
自分なりにまとめてみます。
tableviewcontrollerと、遷移先の項目を追加するview2つを作成します。
core data以外の操作は省略します?‍♂️

#実装と解説
###1 プロジェクト作成
まずはじめにプロジェクトを立ち上げる際に、User Core Dataを選択します。
すると、ファイル名.xcdatamodeldというファイルが追加されます、

###2 tableviewcontrollerと追加用のviewcontrollerの実装
イメージはこんな感じです。
![スクリーンショット 2021-01-16 21.04.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/755375/2e4a1bbe-468d-3296-c818-4f61ec791707.png)

###Core Dataの設定
①のファイルを選択すると、Core Dataの設定ができます。
②でEntityを追加します。

元記事を表示

Xcode 12.3 が頻繁にフリーズする問題に対処した

## はじめに
数分に1回、Xcode v12.3 がフリーズする状況に陥りました。
フリーズするとレインボーアイコンが出て、数分間操作ができなくなります。
だいぶ辛いです。

## 環境

– macOS Catalina v10.15.7
– Xcode v12.3

## 対処方法

Apple のDeveloper Forums に[Xcode freezes after upgrade to 12.3](https://developer.apple.com/forums/thread/669378) という質問が挙がっています。その回答を参考にします。

### Devices and Simulators を開く

Xcode が応答するまで待つか、Xcode を強制終了させて再度立ち上げます。
Xcode が応答しなくなるまでの間に、メニューで `Window` -> `Devices and Simulators` を起動させておきます。

### Connect via network のチェックを外す

Devices and Simulators に登録されてい

元記事を表示

モバイルアプリ開発は、Flutter一択なのか?-2021版-

こんにちは! Tetsukick(菊池哲平)です。
2021年1月現在、インドネシア([PT.AQ Business Consulting Indonesia](https://aqi.co.id/))でモバイルアプリ開発の技術顧問をしております。
iOS歴5年、Flutter歴1年半。[個人でもアプリ開発してます。](https://apps.apple.com/ca/developer/teppei-kikuchi/id1504163412)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/268c909b-c9ca-36b7-157d-3b835a2a109f.png)

本記事は、[2020年11月にZennに投稿した記事](https://zenn.dev/tetsukick/articles/c297b6ee1e64397432e5)の改訂版になります。
![image.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

UITextFiledで一発でplaceHolderの色を選択できるExtensionを考えてみた

# はじめに
どうもこんにちは、TOSHです。
UITextFieldを使用したときに、textColorはそのままセットできるのに、なぜか、placeHolderの色はそのままセットできないって感じた人ことある人は多いと思います。
ということで、placeHolderについてもTextColorと同じようにセットできるようなExtensionを考えてみました。

#通常の方法
通常、placeHolderの色を変更する場合は、

“`swift
let color: UIColor = ~ここで任意の色を指定する~
textField.attributedPlaceholder = NSAttributedString(
string: “placeHolderの中の文字”,
attributes: [NSAttributedString.Key.foregroundColor : color])
“`

まあ、別にそんなに大変ではないが、NSAttibutedStringを使うのかといった感じですよね。

#Ext

元記事を表示

メモ イヤホン抜き差し

iOSで[AudioKit](https://github.com/AudioKit/AudioKit)を利用して音を入力する機能を実装する際、本体とイヤホンのマイクを考慮する必要がある。
本体とマイクとでは、サンプルレートが異なることがあり、本体は44.1kHz、iPhone同梱のLightningイヤホンは48kHzとなる。
抜き差しは、`AVAudioSessionRouteChangeNotification`を利用するのではなく、`AVAudioEngineConfigurationChangeNotification`をトリガーにして、`AKMicrophone`を再インスタンス化しつなげ直し、`AVAudioEngine`を再開させる(`AKManager.engine.start()`)。
また、`AudioKit`が`AVAudioEngineConfigurationChangeNotification`をハンドリングしているので、事前に無効にしておく (`AKSettings.enableCategoryChangeHandling = false`)。

元記事を表示

【SwiftUI】Mapビューを使用する

#この記事は何?
iOS13では、SwiftUIでMapKitを扱うにはUIKit互換のビューでラップする必要がありました。iOS14で、SwiftUIネイティブなビューとしてMapが実装されたようです。
ここでは、「アップル本社の場所を地図上に表示するビュー」のコードを載せておきました。

###環境
– macOS11.1
– Xcode12.3
– Swift5.3

###コード

““Swift:SwiftUIのMapビュー
import SwiftUI
import MapKit

struct MapView: View {
@State var region = MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 37.3351, longitude: -122.0088),
span: MKCoordinateSpan(latitudeDelta: 0.02, longitudeDelta: 0.02))

var body: s

元記事を表示

【iOS】Firebaseど素人のFirebase入門 認証編

Firebaseど素人だったので、Firebase学習の為に公式ドキュメントを見て、学びをサンプルアプリという形でアウトプットしました。
まずは`Authentication`(認証)に挑戦!

##作ったサンプルアプリのデモ
![イメージ.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678954/6e930cdb-5e7a-a306-c5a1-edc575599287.gif)

現在使用中のユーザーメールアドレスがラベルに表示されるアプリです。

・メールアドレスとパスワードを使った新規登録(サインアップ)
・登録済みのアカウントの認証(サインイン)
・サインアウト
・匿名認証

この機能の実装を行いました。

##まずはFirebaseに登録
Firebase公式ドキュメントに沿って、Firebase登録とFirebase SDKをアプリに追加する。
Firebase を i

元記事を表示

JUCE: AirDropでファイルを受けられるようにする

##問題##
JUCEにはContentSharerというクラスがあり、テキストやファイルを他のデバイスにシェアできる機能があるのだが、受けることができない。これはアホなのでなんとかしたい。目標はAirDropでファイルを送って受けられるようにすること。送る側はContentSharerを使うだけなので割愛。

##方法##
JUCEのソースをいじらないと流石にできなかった。iOS/Macのコードに手を入れる。このメソッドを追加。ring2 changeで括ってあるところが変更点。自信がないのでまどろっこしく書いているがもっと短く書いて良いと思う。

“`modules/juce_gui_basics/native/juce_ios_Windowing.mm

#if defined (__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
– (void) userNotificationCenter: (UNUserNotificationCenter*) center willPresentNotif

元記事を表示

pythonistaでダイエット・体温メモツールを作ってみた

# はじめに
健康診断でメタボの仲間入りとなってしまい、ダイエットを決意しました。
手元にあるipadで、毎日の体重等を記録してグラフ化できたらモチベーションも
上がるかも。

# 環境
ipad + pythonista3

# 要件
・朝と夜の体重・血圧や脈拍・体温も記録する。
・歩数や体脂肪も記録する。
・その日の行動メモも記録できたら、後日の分析に役に立つかも。
・毎日のデータをグラフ化する。
・長く続いた時にデータを活用できるように、CSVでデータを書き出したい。

# Ui
![Downloads20210115_02healthmemo[1].png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/aca7c1c4-61b9-f89f-cd73-880556c8b571.png)

グラフはコンソールに画像として表示されています。
![Downloads20210115_03healthmemo[1].png](https://qiita-image-store.s3.ap-nor

元記事を表示

AVCaptureVideoDataOutputのCMSampleBufferからCVPixelBufferにアクセスするときのお作法

CVPixelBufferを取得する場合は`CVPixelBufferLockBaseAddress`でロックを確保してpixelBufferにアクセス、終わったら`CVPixelBufferUnlockBaseAddress`でアンロックする

[Detecting Human Body Poses in an Image](https://developer.apple.com/documentation/coreml/detecting_human_body_poses_in_an_image) より

“`swift
// Attempt to lock the image buffer to gain access to its memory.
guard CVPixelBufferLockBaseAddress(pixelBuffer, .readOnly) == kCVReturnSuccess
else {
return
}

// Create Core Graphics image placeholder.
var image: CGIm

元記事を表示

CGAffineTransformのパラメータが簡単に理解できるPlayground Code

アフィン変換を行うCGAffineTransformのパラメータをa, b, c, d, tx, tyと全部指定して変換したい場合、やり方がよくわからなくなることがあるので、使い方が簡単に理解できるPlayground Codeを作りました。

### CGAffineTransformのパラメータについての説明

CGAffineTransformのパラメータは、アフィン変換の式にあてはめると次のようになります。

**<アフィン変換の式>**

拡大の場合は、aにxの拡大量、dにyの拡大量を指定します。
移動の場合は、txにxの移動量、tyにyの移動量を指定します。
回転の場合はパラメータの部分を次のようにします。

  • OTHERカテゴリの最新記事