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

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

UITableViewでcellを長押しして画面遷移する

###はじめに
UITableViewでcell長押しによる、画面遷移の実装に少し詰まったので、
longPressGestureRecognizerを用いて画面遷移する方法を記載します。

###実装方法
まずViewDidloadにてUILongPressGestureRecognizerの宣言を行います。

“`
override func viewDidLoad() {
super.viewDidLoad()

// UILongPressGestureRecognizerの宣言
let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(ViewController.longPress(longPressGestureRecognizer:)))

// tableViewにrecognizerを設定
self.view.addGestureRecognizer(longPressR

元記事を表示

Swift UITextFieldをコードで実装

#UITextFieldをコードで実装してみる
`swift`というかアプリ開発の入門書をみると`storyboard`にviewをぺたぺたドラッグ&ドロップするやり方ばっかですよね。
それでもいいんですがワンステップ上に上がりたい方のためにコード実装の仕方を記事にします。
まずは変数を定義しましょう。

“`swift
let textField = UITextField()
“`
この状態でビルドしても何も表示されません。
まあ、変数を宣言しただけなんで当たり前ですよね。
次に、`ViewController`の`view`に入れましょう。

“`swift
view.addSubview(textField)
“`
これで追加できました。ビルドしてみましょう。
![Simulator Screen Shot – iPod touch (7th generation) – 2021-01-19 at 16.23.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567404/53e4e1

元記事を表示

【備忘録】UnityでARFoundation使ってARアプリ(iOS)作る際に、なぜかスマホのカメラが起動せずスマホの画面が黒いままの現象について

Unity: 2019.4.13f1
Mac : BigSur 11.1

表題について、忘れずにメモ
前提として、ヒエラルキーに
ARSessionOrigin
ARSession
は、追加していること
また、デフォルトでついてくるカメラのオブジェクトは消していること

下記やったことまとめ
・ARSessionOringin配下のAR CameraのTagをMainCameraに変更
・File > Build Settings >Player Settings > Playerを変更
 ・Other SettingsのMultiThreadRenderingにチェックをつける
 ・Other SettingsのArchitectureをARM64にする
 ・XR Plug-in Managementをクリックし、Plug-in ProvidersにあるARKitにチェックをつける

で、動いた

元記事を表示

[Swift5].gitignoreファイルの作成方法とデフォルトで記述しておくべきコード

## .gitignoreとは
要約すると`.gitignore`とは、APIKeyなどの他者に知られることで問題が発生する恐れのあるコードをgit(Github)にアップしないファイルを設定するものです。

セキュリティの一環として扱われています。

## .gitignoreファイルの作成方法
ターミナルで対象プロジェクトのディレクトリに移動して以下コマンドでファイル作成

“`
% touch .gitignore
“`

作成したファイルを以下コマンドで開く

“`
% open .gitignore
“`

開いたファイルに以下コードを記述

“`
# Xcode
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcus

元記事を表示

Flutter で仕事したい人のための Widget ツリー入門

ご存知の通り、 Flutter は Widget を入れ子の構造で記述することで UI を構築します。

“`dart
Center(
child: Column(
children: const [
Text(‘Hello, Flutter!’),
SizedBox(height: 16),
Text(‘This is my first app.’),
],
),
),
“`

Flutter の Widget 同士の関係は、このようなソースコードの形状から「入れ子」の構造をイメージしがちですが、 Flutter の仕組みを理解する上では、このソースコードから Widget の __ツリー構造__ がイメージできるようになっておくと何かと役に立ちます。

この記事では、Flutter の仕組みを説明する上でよく使われる __「Widget ツリー」__ について、初学者向けに基本から解説していきたいと思います。

# なぜ Widget ツリーを理解するのか

例えば「中央寄せしたければ `Center`

元記事を表示

既存のWebコンテンツをCapacitorを使ってiOSアプリ化する

Zennと同時投稿→ https://zenn.dev/k_u_0615/articles/ece25c2b0a36f3

## 概要
Capacitorを使ったガワネイティブアプリに注目しています。
Capacitorとは、Webコンテンツをガワネイティブアプリとしてビルドしてくれるフレームワークで、[Ionic Team](https://github.com/ionic-team)が開発しています。
既存のWebコンテンツにCapacitorを使用して、アプリ化したらどのような感覚で実現できるのか気になったので、試してみました。

## アプリ化の対象
今回アプリ化するのは、[Ionic Frameworkの公式ドキュメント](https://ionicframework.com/docs)の右に表示されているデモです。

![スクリーンショット 2021-01-18 12.10.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137148/016a5c86-e8ae-28ba-73fd-ae

元記事を表示

[超個人的メモ] 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`)。

元記事を表示

OTHERカテゴリの最新記事