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

iOS関連のことを調べてみた2022年01月08日
目次

AndroiderのiOS奮闘記~UIKitとは~

#この記事は
iOSのキャッチアップを余儀なくされた生粋のAndroiderの奮闘日記です。
単発の記事になりますが、ご容赦ください。

#UIKitとは
ドキュメント読んでいきます。
>Construct and manage a graphical, event-driven user interface for your iOS or tvOS app.

iOSとtvOS用に作られたもので、イベント駆動なインターフェースを提供してくれるフレームワークのようです。
iOSシステムとのインタラクティブを管理してくれるようです。

全然知らなかったけど、Apple社はテレビ用のOSも出してるんや。

注意書きとして、UIKitのクラスはメインスレッドのみで使用するのがルールみたいです。

#SwiftUIとの違いは
SwiftUIもiOSでUIを描画するためのフレームワークですが、新しいものみたいです。
ただ、一つのプロジェクトに両者をブリッジできるようなので、組み合わせて使える。

AndroidでもJetpackComposeを既存のものに組み込めるので、それと同じかなと。

#

元記事を表示

小学生でも分かるswift構文2

#小学生でも分かるswift構文2

さて、今回は数値型について記述していきたいと思います。

「**int**」とは、型の一種で、**整数型**と呼ばれています。
実際にXcode上で、

“`
let integer:Int = 0
“`
と入力してみました。

「integer」という名前の、「Int」型に「0」という値を代入しました。

という構文になります。

もう一つ紹介するのが、

「**double**」という型で、**浮動小数点型**と呼ばれます。

“`
let ダブル:Double = 0.1
“`
「ダブル」という名前の、「Double」型に「0.1」という値を代入しました。

という構文です。

小数点が付かない数は「Int」型,小数点が付く数は「Double」型を使うと思って頂ければ大丈夫です。

また、swiftには「型推論」という機能が備わっていて、

“`
let integer = 0
“`
のように入力しても、「integer」は「Int」型だとXcode側で勝手に判断してくれる便利な機能が備わっているのです。

僕自身、初心者すぎてこ

元記事を表示

Swift Playgrounds「地震計」Appプロジェクトを解説する

# この投稿は何?
iPadとMac向けアプリの「Swift Playgrounds4」に用意されている「地震計」Appプロジェクトを学ぶための解説です。

# 「地震計」Appプロジェクトの概要
このプロジェクトは、iPad内蔵のモーションセンサーを使って振動を検知する「Seismometer」アプリを作成します。
検出した振動データは、2つの形式(針と折れ線グラフ)で可視化します。

![プレゼンテーション 4.002.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70476/9f24f480-1170-eb54-52dd-4d7325905c2d.jpeg)

# リソースファイル
このAppプロジェクトに含まれているリソースファイルを、名前順に挙げます。

– DoubleExtension
– GaugeBackground
– GraphSeismometer
– LineGraph
– MotionDetecter
– NeedleSeismometer
– SeismometerAp

元記事を表示

Flutterベースのモバイル向けタイムラインの作成

## 初めて:Quireタイムライン(モバイル向け)の構造を初公開

2018年に初めてFlutterベースのアプリを作ったときは、とても楽しく興奮しました。それから3年経ち、Quireアプリもかなり充実して、従来のモバイル向けプロジェクト管理アプリの域を超えるまでになりました。Quireモバイルアプリの現行バージョンは、階層表示、ボード表示だけでなく、タイムライン表示にも対応しています。

モバイルアプリ向けのタイムライン表示の作成を決めたときは、簡単にできるとは思いませんでした。当時は類似の既成コンポーネントもなかったためですが、驚いたのは、インターネットでタイムライン表示の構造についての情報も見当たらなかったことです。そこで、いちかばちか、自分たちで作ってみることにしました。

##### Quireモバイルアプリ用のタイムラインでは、以下を計画していました。

1. 横方向への無限日付スクロール
2. レンダリングオンデマンド(ROD)。ビューポートにあるときのみ実行されるWidgetのState
3. 任意の位置に素早く配置
4. 操作がかんたんで使いやすいインターフェースと

元記事を表示

機械学習は最新モデルがどんどん発表されるけど、どれが一番いいの? CoreML-Modelsでかんたんにくらべられるので、頂上決戦してみた

# いろんな最新画像分類モデルを比べてみた
画像をドロップするだけで機械学習モデルが試せるCoreML Modelで、最新(2021年発表)の画像分類モデルを比べてみました。

スクリーンショット 2022-01-07 12 59 04

#モデルがいろいろありすぎて、どれを使えばいいのかわからない
機械学習モデルをアプリに取り込みたい。
できれば、自分のアプリのサービスに一番適したモデルを選びたい。
例えば、[AppleがiOS用に公式に配布しているモデル](https://developer.apple.com/machine-learning/models/)は数年前のもので、数種類だが、

https://developer.apple.com/machine-learning/models/

元記事を表示

【Unity iOS Build】M1 Macでビルドエラーになった時に見たリンク等

# はじめに(私の環境とか)
M1 Macに変えて初めてだったのと、だいぶ久々だったのでUnity→iOSでビルドエラーが頻発してしまいました。
今後のため備忘録としてまとめます。

環境は以下のような感じです

– Xcode v13.2.1
– Unity Hub 2.4.5
– Unity 2020.3.25f1 (LTS)
– iPhone SE2 バージョンはiOS15.1

# リンク

– [UNITYがビルドできない チェックリスト](https://ringonokajitu.com/?p=544)
– [【iOS】Xcodeでビルド時に「The Legacy Build System will be removed in a future release」のエラーが出る場合の対処法](https://develop.hateblo.jp/entry/ios-legacy-build)
– [UnityでiOSビルドするとエラーが出る](https://nn-hokuson.hatenablog.com/entry/2016/12/24/113002)→Signing

元記事を表示

Realm に手書きの線を一本保存して取り出す

`Realm`(レルム)にお絵かき機能で描いた線を保存して取り出す方法を説明します。

お絵かきアプリの作り方はググるととても分かりやすいサイトが出てきたのですが、
それを画像では無く、後から編集できる状態でRealmに保存して取り出す方法が分からず試行錯誤しました。

一応保存はできるようになりましたが、
我流なところもあると思いますので、
間違いや他に良いやり方があればぜひご教授ください。

#この記事でわかること
・Realmを使って手書きの線を1本保存して、それを取り出す方法

#動作確認環境など
・Xcode 12.4
・Realm 10.20.1
・MongoDB Realm Studio 11.1.0
・UIKit
・Storyboard

#この記事の対象読者
・RealmとRealmStudioの使い方がなんとなくわかる初心者の方

#事前にやっておいた方が良いこと

お絵かきの機能とRealmの基本的な使い方はあまり詳しく解説できませんので、
下記サイトなどを確認してみて、いろいろ試してみてください。

>[お絵かきソフトの実装 〜 タッチ系イベント処理とベジェ曲

元記事を表示

動画に好きな処理をしたい! そんなライブラリがあったので、実写をアニメにした

# かんたんに動画の全てのフレームに任意の処理ができるフレームワーク
既存の動画ファイルに好きな処理ができるフレームワークを使って、実写をアニメにします。

# 動画処理はややこしそう?
動画の読み出し→加工→書き込みの処理は、いろいろ書かなくてはいけなさそうなイメージでややこしそうではないですか?

# 全てのフレームを処理することなんてできるのか?
結局、動画はすごくたくさんの量の画像が集まったパラパラ漫画のようなもので、
動画を加工するには、その全てのフレームに加工処理を加えないといけないのでは?

# SemanticImageで、かんたんに、動画に好きな処理ができる
[**SemanticImage**](https://github.com/john-rocky/SemanticImage)というライブラリなら、数行のコードでかんたんに動画処理ができます

元記事を表示

iOS15からの’windows’ was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene insteadに対応する

## はじめに
iOS15から`UIApplication.shared.windows`を使用すると`’windows’ was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene instead`という警告が発火します。

今回はこちらの警告の解消法を記事にします。

## 環境
Swift version 5.5
Xcode version 13.2.1

## 原因
iOS15から、`windows`が非推奨になり,代わりに、`UIWindowScene.windows`を使えといっています。

## 対処法
このように書けば警告を解消できます。

“`.swift
let scenes = UIApplication.shared.connectedScenes
let windowScenes = scenes.first as? UIWindowScene
let window = windowScenes?.windows.first
“`

`rootVie

元記事を表示

Flutter dSYMをアップロードする

dSYMのアップロードで少しハマったので書き残します。

#dsymを生成してパスを取得
1.Xcodeを開き、メインのTARGETSを選択
2.Build Settings、Allを選択
3.Build OptionsのDebug information FormatをDWARF with dSYM Fileに変更する。
![スクリーンショット 2022-01-05 23.49.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1086494/0cc605c5-1ea2-ac00-6a91-6c0bdc3d5659.png)
4.iOS版をビルドする

“`
$ flutter build ios
“`

5.Xcodeを開き、Product→Archiveを選択し、処理が完了するまで待つ。

6.XcodeのWindow→Organizerを選択

7.生成されたArchiveを右クリックして、show in Finderを選択

8.Finderが開いたら中にあるファイルを右クリックしてパッ

元記事を表示

iOSで「iSH」を使用してasciidocを書く

# はじめに
iOSのアプリにはasciidocを書くアプリが見つからなかったため、「iPhone/iPadでx86 Linuxを動かすアプリ」である「iSH」を使用して、asciidocを書くための環境を構築しました。
本記事の内容は次の通りです。

* 「iSH」上でvimをインストールする
* 「iSH」上でasciidocのファイル形式変換環境を構築する
* 「iSH」上でasciidocファイルをpdfファイルに変換する

# 「iSH」上でvimをインストールする
ここでは「iSH」アプリのインストール方法は割愛します。
「App Store」で「iSH」で検索すれば該当アプリをすぐに見つけ出すことができると思います。
先ずは、「iSH」アイコンをタップして、「iSH」アプリを起動します。
「iSH」アプリが起動したら下記のapkコマンドを実行してvimをインストールします。

“`bash:vimのインストール
apk add vim
“`

インストールが完了したらvimコマンドを実行してvimが起動することを確認します。
この時点でvimで日本語入力ができていると

元記事を表示

【Swift】Firestore × Codableの通信を共通化する

## はじめに
今回は、Firestoreに対してデータをリクエストする処理(通信処理〜エラーハンドリング)を共通化してみたので、自分用のスニペット的な意味も込めて記事にまとめてみました。

今回は、API通信を共通化しているこちらの記事からヒントを得てそれをFirestoreに適用しました。

https://blog.shota-ito.com/2020/06/26/post-579/

また、Firestoreで取得したデータをCodableでデコードする処理については、自分が以前記事にしたものがありますので、そちらをご覧いただければと思います。

https://qiita.com/ctnc_67/items/7027a10c8c18014fddfa

## 前提条件となる知識
– Firestoreについての基礎知識(クエリの書き方など)
– Codableを使ったDecode処理
– ジェネリクスについての基礎知識

## 実装

まずは、リクエストを送信するためのクラスを作ります。
多くの場合は、RequestとResponseの関係は1:1だと思うので、Requestク

元記事を表示

実機でflutter run ios時にSigningを設定しているのにエラーが出る

# エラー

“`
Building a deployable iOS app requires a selected Development Team with a
Provisioning Profile. Please ensure that a Development Team is selected by:
1- Open the Flutter project’s Xcode target with
open ios/Runner.xcworkspace
2- Select the ‘Runner’ project in the navigator then the ‘Runner’ target
in the project settings
3- Make sure a ‘Development Team’ is selected under Signing & Capabilities > Team.
You may need to:
– Log in with your Apple ID in X

元記事を表示

アニメからスケッチを抽出 あのアニメもAnime2Sketchでかんたんに

#画像をドロップするだけでアニメ画像をスケッチに変える機械学習モデルがかんたんにつかえる

#アニメをきれいに線画にしたい
アニメから線だけ抽出できれば、ぬりえや2次創作などいろんなことに使える。

#線だけ抽出することはできるのか?
ただモノクロにするだけではこうなる。

元記事を表示

Swift Playground4「予定表」Appプロジェクトを解説する

# この投稿はなに?
iPadとMac向けアプリの「Swift Playgrounds4」に用意されている「予定表」Appプロジェクトを学ぶための解説です。

#「予定表」Appプロジェクト
このプロジェクトでは、イベントを日付ごとに整理してスケジュールを立てる「DatePlanner」アプリを開発します。
このアプリでは、リストビューとオブザーバ・データモデルを使って、イベントやタスクを動的に生成するリストを構築します。
そのために、アプリのビュー階層全体から利用できる「一貫性のあるデータオブジェクト」を作成します。

![IMG_0525.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70476/fd694464-ef98-118f-9d35-123985e71a4a.jpeg)

# リソースファイル
プロジェクトに含まれるファイルは、機能的な視点から「データモデル(イベントとタスク)、ビュー、シンボルその他」に分けて捉えることができます。

データモデル

– DatePlannerApp

元記事を表示

【iOS】Bitriseを導入してテストをBitrise上で行う

#はじめに
Bitriseの導入で手こずったので、備忘録です。

#環境
Xcode: 13.2.1
macOS: M1 Monterey 12.1 Beta
iOS: 15.0
CocoaPods: 1.10.2

#プロジェクト作成
プロジェクトネームはここではこんな感じでつけときます。
Include Testsにチェックをつけてテストファイルを追加します。

![ScreenShot 2022-01-03 15.54.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954451/df998317-3202-aa54-99a2-2dab07b26fd0.png)

#テストコードを書く
次のようなコードをBitrise_SampleTestsに書きます。

“`swift
class Bitrise_SampleTests: XCTestCase {

func testAdd() {
var age = 21
age += 1

元記事を表示

Swift – Frameworkを作成し、ローカルで使ってみる

#はじめに
大体の流れ
STEP1:新しいプロジェクトを立てて、Frameworkを選ぶ
STEP2:swiftファイルを追加する
STEP3:swiftファイルにclass,funcを定義する
STEP4:testFrameworkTwo.podspecを作成する
STEP5:該当frameworkを使いたいプロジェクトのPodfileに追加する

#STEP1:新しいプロジェクトを立てて、Frameworkを選ぶ
![截圖 2022-01-02 22.19.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1326861/bfc57ffa-c322-c4d1-7ae5-5df061850aa0.png)
#STEP2:swiftファイルを追加する
![截圖 2022-01-03 16.25.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1326861/0a28d475-df49-d620-8273-c7310

元記事を表示

SwiftUIを使わないで宣言的にレイアウトを実装する

SwiftUIが出て数年経ちましたが、既存のUIKitのプロジェクトに導入しようとするとリアクティブプログラミングの学習やアーキテクチャの切り替えなど導入障壁が高いと感じていました

そのため、既存のUIKitのプロジェクトのアーキテクチャやロジックを変更することなく、レイアウトを組む部分を宣言的に書けるようにするライブラリを作りました(と言いつつ宣言的UIとは何かが分かってないので根本的に違うかもしれませんw)

このライブラリを使用しても既存の通りの記述(つまり手続的に書く記述)と混ぜることもできるため、ひとつのViewController内のさらに一部だけ導入するといったことも可能です

まとめると以下のような要件で使ってもらえることを期待しています

“`
・既存のアーキテクチャや実装をなるべく変えたくないよ
・SwiftUIはバージョンあがればどうせ書き方変わるだろうしまだ手は出せないよ
・RxSwift,Combineとか難しそうだし、ただ宣言的にUIを組みたいだけだよ
“`
この記事では使い方を紹介していきます

ライブラリのリンクはこちらです

https://gi

元記事を表示

メイクアプリやヘアカラーアプリがiOSでつくれる 機械学習で顔の部品を分離

#機械学習をつかって顔のパーツを取得する方法

#髪の毛だけ、目だけ自動で分離したい
髪の毛や唇など、狙ったパーツを細かく分離できれば、そこだけ色を変えてメイクアプリがつくれる。
ユーザーに輪郭をなぞってもらってカットするのでは、めんどうくさい。
自動でやりたい。
しかも、髪の毛などはなるべく細かいところまで丁寧に切り取りたい。
しかし、自動で、細かく切り取ることは可能なのだろうか。

#ねらったパーツをとれるフレームワークはなかなかない

機械学習にセマンティックセグメンテーションという分野がある。
画像をオブジェクトごとに細かく分離できる技術だ。
技術向上により、かなり細かく切り取れるようになってきている。

iOSにもセグメンテーションをつかえるフレームワークがある。
しかし、AVFoundationでPortraitMatte

元記事を表示

画面の回転を検知するSwiftUIビュー

#この投稿は何?
iPhoneまたはiPadのSwiftUIアプリ開発において、デバイスの姿勢変化を検出するための方法を実践します。

# UIDeviceOrientation
`orientation`プロパティは、以下の定数を用いてデバイスの向きを識別します。
以下の定数は、あくまでも「デバイスが物理的に向いている方向」を識別するものであり、起動中のアプリケーションUIの向きとは関係ありません。

– unknown
デバイスの向きが特定できない状態。

– portrait
デバイスを縦に(ホームボタンは下側に)した状態。

– portraitUpsideDown
デバイスを縦にして、ホームボタンは上部にしたポートレートモード。

– landscapeLeft
デバイスを縦にして、ホームボタンは右側にしたランドスケープモード。

– landscapeRight
デバイスを縦にして、ホームボタンは左側にしたランドスケープモード。

– faceUp
デバイスを水平にして、画面を上向きにした状態。

– faceDown
デバイスを水平にして、画面を下向きにした状態。

`U

元記事を表示

OTHERカテゴリの最新記事