iOS関連のことを調べてみた

iOS関連のことを調べてみた
目次

【SwiftUI】Chartsをまだ使ったことがなかったので株価アプリのUIっぽいの作って入門してみた3

# はじめに
この記事は前回の記事から続いています。
前回は株価をタップ&ドラッグした時のアクションを追加しました。

https://qiita.com/SNQ-2001/items/3b92fceb72721262a907

https://qiita.com/SNQ-2001/items/73132bf3cdbd4b8bb60b

今回はタップした時の上の株価を表示させる&タップしている株価の位置にsymbolを置くの2つをやってみます。

# 実際の株価アプリ
![RPReplay_Final1702894460.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/123885f4-83b9-6457-2ae0-83656fc83966.gif)

# 作成したサンプルアプリ
![Simulator Screen Recording – iPhone 15 Pro – 2023-12-19 at 13.54.20.gif](https://qiita-image-store.s3.ap

元記事を表示

Swiftのアクセス装飾子について理解する

# アクセス装飾子とは?
Swiftではアクセス装飾子を利用することができます。
装飾子を使用することにより、関数やクラスにアクセス制限を設けることができ、スコープ(使用する範囲)を明確にして定義することができます。
# アクセス装飾子の種類
### open
– 同じモジュール内だけでなく、別のモジュールからでもアクセスが可能
– 継承またはオーバーライドができる

:::note info
モジュールとは
importして読み込んで利用するFrameworkを作成するための仕組み。
:::

### public

– 同じモジュール内だけでなく、別のモジュールからでもアクセスが可能
– 継承やオーバーライドが不可能

### internal
– 同じモジュール内からのみアクセスできる
### fileprivate

– 同じファイル内からのアクセスのみ許可されている。

### private

– 装飾子を設けたそのクラスまたは構造体の中でのみアクセス可能(extension内でもアクセス可能)
– 一番制約の厳しい装飾子

:::note info
装飾子を何も付けなけ

元記事を表示

XCode15系にアプデしたらアプリがLaunchScreenから先に進まなくなった

# はじめに
この記事はand factory.inc Advent Calendar 2023 19日目の記事です。
昨日は @ichikawa7ss さんの「[なんのためにあるの?逆引きスクラムプラクティス](https://qiita.com/ichikawa7ss/items/50eac1c2b859fdfe8c3a)」でした。

# 起こったこと

– XCode14.2で開発を進めていたアプリをXCode15で起動したところ、LaunchScreenを表示した後に真っ暗な画面(black screen)から先に進まなくなった

# 解消方法

– `UISceneConfiguration.delegateClass` を指定したら解消

## 修正前
“`swift
/// this shows black screen with XCode 15.0~. (worked when XCode 14.2)
func application(
_ application: UIApplication,
configurat

元記事を表示

外に出ない自分を罵倒してくれるアプリを作った

この記事は[Qiita クソアプリ Advent Calendar 2023](https://qiita.com/advent-calendar/2023/kuso-app) シリーズ2 19日目の記事です。

## 初めに

フルリモートで働いているエンジニアの皆さんは、ほとんどが家で働いていることが多くて、
外に出ないことがあるのではないでしょうか?

自分も例に漏れずに、ずっとデスクの前にいて、全く歩かない日があります。

![歩数.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/393442/9faf8d89-7419-ab4f-2e9a-641e79913216.jpeg)
**圧倒的歩数、!**

これではダメだ、外に出ないと、!
だけど外に出なくても叱ってくれる人もいない、外に出ない日は罵倒されたい、いや、罵倒してほしい
だけど時々褒めて欲しい

ということで、
その日に歩いた歩数をもとに罵倒してくれつつ(時々褒める)明日の運勢を占ってくれるアプリを作りました

[ソースコードはこちら

元記事を表示

UICollectionViewを用いた画面構築の基礎

# 概要
Swiftにおける画面構築の方法として、UICollectionViewを用いた方法があります。UICollectionViewを用いた画面構築では、UICollectionViewLayoutやUICollectionViewCellRegistration、NSDiffableDataSourceなどを駆使して画面のレイアウトや表示するUIViewを登録します。

さて、私は2023年の4月から本格的にUICollectionViewを用いた画面構築を始めたのですが、何度も挫折しそうになりながらも12月まで勉強を続けています。本記事では、私がUICollectionViewによる画面構築を始めてから学んだことをまとめます。また、本記事では記載する内容は基礎の情報のみに留めています。これからUICollectionViewを勉強する方々の助けになればと思います。

# 目次
[1.SectionとItem](#1-SectionとItem)
[2.UICollectionViewLayout](#2-UICollectionViewLayout)
[3.UICollecti

元記事を表示

【Flutter】 arkitを使ってARに3dモデルを表示する方法

この記事は、【 [可茂IT塾 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/kamo-it) 】の16日目の記事です。

# はじめに
arkit_pluginライブラリを使ってARにglTF・glb形式の3dオブジェクトを表示する方法を解説します。

# 開発環境
– Flutter 3.14.0
– Dart 3.2.0
– arkit_plugin 1.0.7
– collection 1.18.0
– vector_math 2.1.4

# 実装手順
### 1. ライブラリのインストール
flutterでARを表示するには、**arkit_plugin** ( https://pub.dev/packages/arkit_plugin

元記事を表示

Swift / iOSでQRコードを読み取る

AVFoundationでのやり方

AVCaptureMetadataOutputObjectsDelegateの

>func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection)

という名前のデリゲートメソッドで毎フレームのQRコード検出結果が得られます。

以下はカメラ設定とQRコード検出のコードで、これでとりあえずQRコードの領域描画ができます。

![Dec-18-2023 22-04-59.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/9e555ede-0703-ed0a-b455-763618d02a9b.gif)

“`swift

class ViewController: UIViewController, AVCaptureMetadataOutpu

元記事を表示

「iOSエンジニアは5年後にAppleエンジニアに転ずる」論者の考察

# ようこそ考察の沼へ
こんにちは。
山田遍音とかいて、やまだあまねと呼んでください。
ツバメと聞くと、舌打ちをしたりしていませんか?
りんご味のグミを過剰に咀嚼していませんか?
胸に手を当てて自分に聞いてみてください。

# 想定する記事読者
わたしの記事を開いた人は、残念だが、iOSエンジニアとして、食いつなげるかわからないが、iOSを含めApple製品の調査やコーディングをして糊口をしのぎたい人だ。
とどのつまり、わたしだ。

# Appleエンジニア・・・?
Appleエンジニアは、Apple社員かつエンジニア職に就いている人のことではない。
いや、おそらく、Apple社員かつエンジニア職に就いている人はAppleエンジニアと称していいはずだ。
iOSエンジニア・コーディングやアプリのリリースに関わる者は、今後2分する。
前者は従来通り、コーディングやライブラリ生成に関わるものたちだ。プログラマやPMとして、従来通り働く。
後者は、コーディングは得意ではないが、日本人でありながら翻訳が非常に得意で、Appleのドキュメントを迅速に理解し、チームメンバにわかるように連携する仕事に

元記事を表示

【SwiftUI】Chartsをまだ使ったことがなかったので株価アプリのUIっぽいの作って入門してみた2

# はじめに
昨日、株価アプリの見た目を作成しました。
この記事は前回の記事から続いています。

https://qiita.com/SNQ-2001/items/3b92fceb72721262a907

今回は株価をタップ&ドラッグした時のアクションを追加してみます。

# 実際の株価アプリ
![RPReplay_Final1702894460.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/123885f4-83b9-6457-2ae0-83656fc83966.gif)

# 作成したサンプルアプリ
選択するとグラフが青くなり、選択している日付に縦線が表示されます。

![Simulator Screen Recording – iPhone 15 Pro – 2023-12-18 at 15.18.03.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/82486c6e-2d89-30

元記事を表示

【iOS】個人アプリの大改修に立ち向かってみた。

# はじめに
この記事では、過去に開発したiOSアプリの大規模アップデートについての経験を共有します。特に、なぜこのタイミングでアップデートを行うことに決めたのか、開発プロセス、アップデートのリリースとその影響について焦点を当てています。自分の直面した課題とその解決策について詳述し、同様の状況に直面するかもしれない読者の方の参考となれば幸いです。
# 背景
## 改修前のプロダクト情報
### 開発環境
– 初回リリース:2018年
– 最終アップデート:2020年9月
– Minimum iOS Version:11.0
– プロダクトの規模感:小さい

### **改修を決意した理由**
リリース時に使用した広告SDKバージョンのサポート終了により、アップデートが必要となり、大規模な改修を決意しました。

# 改修方針
継続的なアップデートを行うための環境を整えることを目指し、以下の改修方針を決定しました。

### アーキテクチャ
– **MVVM**
– 選定理由
– 継続的なアップデートを行うため、責務分離を行いたい。
– 自分自身がM

元記事を表示

【iOS】react-native-webviewのスクロール速度が微妙だっのを修正した

React Nativeアプリを作っているときにiOSのWebViewのスクロール速度が遅いことに気がついた。
指でフリックしても全然滑らない。
同じサイトをSafariで表示させて比べてみても、スクロール量が全然違う。

### UIWebviewの設定値の問題だった
解決策を検索していてたどり着いた記事がこちら。

https://qiita.com/TechMeetMeet/items/44ccc4cb8ce2504091cd

WebView内のscrollViewのデフォルトの設定値が原因らしく、プロパティの変更で対応できるとのこと。

> 以下のようにするだけでスクロールの滑りがUITableViewのデフォルトと同等になります。
> “`
> self.webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal
> “`

### react-native-webviewで適用するには?
なるほど、ネイティブコードでの修正方法は分かった。ではreact-native-webviewで

元記事を表示

【UiPath】iOSショートカットからジョブを実行してみた

みなさん、こんにちは。:santa:

UiPathのiOSアプリでOrchestratorがあるのは皆さんご存じでしょうか。
![IMG_7224.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654526/1b8fb1c5-ff74-4d31-eda5-bc0859dfaae6.png)

このアプリはiPhoneからOrchestratorの操作ができるアプリです。
スクショを見ると、ダッシュボード、プロセス、ジョブ、トリガー、、、などさまざまな機能にアクセスが可能です。(詳しくは使ってみてね~)
![IMG_7228.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654526/4bc2ab28-88dc-accd-8ff3-43c3c52838aa.png)

今回はiOSアプリOrchestratorから、iOSショートカットにジョブを登録できたので、
iOSショートカット内の「オートメーション」を利用

元記事を表示

iPhoneで動物を検出する

iPhoneやiPadのカメラ、画像から犬と猫を検出できます。
![inu.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/a740a9a5-aef9-01a5-8e68-7f4c92d763a5.jpeg)

“`swift
let request = VNRecognizeAnimalsRequest()
let handler = VNImageRequestHandler(cgImage: cgImage)
do {
try handler.perform([animalRequest])
guard let results = animalRequest.results else { return }
for result in results {
let label = result.labels.first?.identifier // “Dog” or “Cat”
let box = result.boundingBo

元記事を表示

【SwiftUI】Chartsをまだ使ったことがなかったので株価アプリのUIっぽいの作って入門してみた1

# はじめに
iOS16から使えるようになったChartsをまだ使ったことがなかったので、iPhoneに標準で入ってる株価アプリのUIっぽい感じのものを作ってみました。
ほぼ同じのクローンみたいなの作ろうと思ったんですけど、難易度高くて諦めました。

# サンプルアプリ
今回作ったのはこんな感じ
![simulator_screenshot_F5254B35-F7E3-435F-BF3F-E81A558ED637.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/5e7ce94e-e0db-4e24-42d2-96833c937c89.png)

本当はタップした日時の株価が表示されたらいい感じだったんですけど、むずくて断念しました。
そのうちやります。

# 準備
今回、日付を扱うので軽くDate拡張を作成しました。
これはメインではないので適当な感じです。
“`swift
extension Date {
init(year: Int, month: Int, day: Int

元記事を表示

【Unity】モバイルアプリ上で GPU 負荷を計測する

この記事は [Unity Advent Calendar 2023](https://qiita.com/advent-calendar/2023/unity) の17日目の記事です。

# はじめに

モバイルプラットフォーム (iOS / Android) では Unity 標準の [GPU Usage Profiler module](https://docs.unity3d.com/2022.3/Documentation/Manual/ProfilerGPU.html) のサポートには次のような制限があり、GPU 負荷計測を行うにはサードパーティー製のプロファイリングツールを使う必要が出てくるかと思います。

|Platform|GraphicsAPI|Status|
|:-:|:-:|:-:|
|**Android**|OpenGL|Supported on devices running NVIDIA or Intel GPUs.|
||Vulkan|Not supported|
|**iOS**|Metal|Not supported. Use XCode’s GPU

元記事を表示

iOS デバイス を Intune へ 登録する(デバイス登録)

# はじめに
iOSデバイス(iPhone / iPad) を Intune へ登録するための手順です。

# 事前準備

## ① Microsoft Entra テナント の手配
以下の記事を参考に、Microsoft テナント を手配して、グローバル管理者 を作成します。
既に手配済みの テナント は、グローバル管理者 の権限を所持していれば構成できます。

https://qiita.com/carol0226/items/e560688f2b6a93e97126

:::note info
カスタムドメインは、構成されていても いなくても どちらでも構いません。
:::

## ② 本作業で必要なライセンス
“Intune” ライセンス は、デバイスを Intune に登録する際、および Intune の機能を利用するために必要です。

Intune を包含する上位のライセンスでも構いません。
※ EMS E3 / E5 や、Microsoft365 E3 / E5 などには、Intune の ライセンス が含まれます。

以下の記事に、テナントでライセンスの選び方や 購入の

元記事を表示

iPhoneやiPadを専用端末として使うには?

[1日目の記事](https://qiita.com/YusukeIwaki/items/ec6e63dc37bd52c5f6e1)では、Androidを専用端末として使うには、Android Management APIのKIOSKを使うのがお手軽ですよ、というお話を書きました。ではiOSではどうすればよいのでしょうか?

![貼り付けた画像_2023_12_17_14_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/74571/f255b224-2785-09cb-2272-617f4f1bba2c.png)

世の中を見渡してみると、イオンのスーパーのレジゴー端末はAndroidですが、最後の決済完了を受けてるのはiPadですね。小規模なお店だと、レジ端末でiPadやiPodを使ってるのを見ることも増えてきましたね。ああいうiOSデバイスはどのようにして作っているのでしょうか?

## 「シングルアプリモード」という機能がある

https://support.apple.com/ja-jp/

元記事を表示

iOS デバイス を Intune へ 登録する(事前作業:MDM プッシュ証明書)

# はじめに
Microsoft Intune で iOS/iPadOS および macOS デバイスを管理するためには、Apple MDM プッシュ証明書が必要で、毎年 証明書を更新する必要があります。

この記事では、Microsoft Intune で Apple MDM プッシュ証明書をアップロードして更新する手順を紹介します。

【公開情報:Apple MDM プッシュ証明書を取得する】
https://learn.microsoft.com/ja-jp/mem/intune/enrollment/apple-mdm-push-certificate-get

:::note info
なお、手順を見ると 多くのステップがあるように見えますが、一般的な証明書の作成と考え方は一緒です。

(おおざっぱな作業としては、以下を実施しているだけです)
1. Intune 管理センター で CSR を発行
1. Apple Push Certificates Portal へ CSR をアップロードし、証明書を発行
1. 証明書を Intune 管理センターへアップロード
:::

#

元記事を表示

【SwiftUI】LazyVStackのonAppearについて調査した

こんにちは。[ymurao2](https://twitter.com/ymurao2)です!
`ScrollView` + `LazyVStack`で縦に長い画面を実装しているとき、`VStack`と`LazyVStack`の使い分けについて悩むことが少なからずあったので、調査しました

:::note info
動作環境
Xcode15.0.1
:::
以下のような画面で調査しました
![CleanShot 2023-12-17 at 14.40.14.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529173/4cb0fd54-5ce3-ae81-1325-9f63ddab7a57.gif)

調査コード
“`diff_swift
ScrollView {
+ // ここと
LazyVStack {
+ // ここと
LazyVStack {
ForEach(0..<25, id: \.self) { i in

元記事を表示

【Unity】WebGL開発ハマりポイント

本記事は [オルトプラス Advent Calendar 2023](https://qiita.com/advent-calendar/2023/altplus2023) の12/17の記事です。

# はじめに
こんにちは!オルトプラスでクライアントエンジニアをしている渡辺です。
約1年半ほどUnityでWebGL向けのゲーム開発をしております。
今回はWebGL開発中に遭遇したハマりポイントとその解決方法についてご紹介したいと思います。

# 概要
– 背景を透過させたい
– iPad判定がされない
– キャッシュが残ってアプリが更新されない
– iOS対策
– サウンドが再生されない

# 詳細

### 背景を透過させる
Webページの上に別のページのWebページを重ねて表示させたい場合があります。
さらに重ねる方のページは元々表示していたページより小さく表示する場合は少し工夫が必要です。

  • OTHERカテゴリの最新記事