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

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

iOS アーキテクチャ 会社(サービス)ごとに調べてみた 2024年4月版

## 背景

現プロジェクトでSwiftUI導入にあたり、リアーキテクチャの必要が出てきたため、他社導入事例を調査しました。

## 登場アーキテクチャ

* MVVM
* Redux系統(TCA, 独自)
* Clean Architecture系統(VIPER)
* その他

## おことわり

* 実際に会社の人に聞きに行ったわけではないので非公式です
* インターネット上で取得できる情報に限るため正確性に欠ける恐れがあります
* また参照した情報が古い場合もあります
* より正確に知りたい場合は自分で調べていただけるとありがたいです
* 情報の出所(採用ページ、技術ブログなど)
* 大量の情報を扱っているため企業名など正確性に欠けます
* 選出企業条件:iOSDCスポンサー企業で自社でサービスを持っているなど
* 順不同

## 一覧

### MVVM

|企業名|サービス名|アーキテクチャ| 参考URL|
|:—-|:—-|:—-|:—-|
|yappli| |MVVM| [URL](https://open.talentio.com/r/1/c/yappl

元記事を表示

React Native ExpoでApple Privacy Manifestsに対応する

## Apple Privacy Manifests

### 警告メール

2024/03/13以降、Privacy Manifestsを記述していないアプリをApp Storeに提出した際に下記のメールが届くようになりました。

“`
Hello,

We noticed one or more issues with a recent submission for App Store review for the following app:

ガチ有能AI助手
Version 1.0.13
Build 14
Although submission for App Store review was successful, you may want to correct the following issues in your next submission for App Store review. Once you’ve corrected the issues, upload a new binary to App Store Connect.

ITMS-91053: M

元記事を表示

Privacy Manifests対応

# これは何?

– Xcode15より新しいプライバシーに関する基準が新設された
– 目的はざっくり、App Storeでユーザーに対し利用している情報をさらに明示的にするため
– プライバシーの強化
– 2023年秋から警告メールの送付が開始され、2024年春(2024/05/01)以降は対応必須となる
– これに対応しないと審査でリジェクトされる
– 新規だけではなく、既存アプリもアップデートをかける際には対応が必要
– [やること](https://qiita.com/K0uhe1D/items/bb3b5818ae54069118a4#%E3%82%84%E3%82%8B%E3%81%93%E3%81%A8) に記載する3つの項目に対して該当する場合は対応が必要

https://developer.apple.com/jp/news/?id=3d8a9yyh

# 前提

– Privacy Manifestsに対してAppleの方でも対応の遅れがあり、現時点で正しい対応方法が明確ではない箇所が多々あります
– その為一度審査に出して警告メ

元記事を表示

@IB接続でNAMEを書き直す方法

## はじめに
私は最近プログラミングスクールにて学習をスタートした初学者で、学習していく中で疑問に思ったことや苦労したことなどについて記事を書いております。

## @IB接続でnameを間違えて記述した

画像の通り@IBAction接続でボタンを紐づけました。

ですが、赤線のところをよく見てみると、ボタンのつずりを間違えて記述してしまいました。

![スクリーンショット 2024-04-16 21.46.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3715605/d28a23d6-5796-45f4-5067-a05860213c78.png)

この場合、赤線のところでただ単に書き直すのはNGです。

## 書き直し方

赤線のところを右クリック

![スクリーンショット 2024-04-16 21.46.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3715605/3276e17f-91a2-

元記事を表示

#11 カスタムコントローラークラスとviewDidLoadを利用してアプリの画面をカスタマイズ

このプロジェクトのインスピレーションは、最近の桜の季節から来ています。そのため、関連する画面を作成したいと思います。

結果は以下の通りです:

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3703986/e7133798-a150-88f8-39e1-6e13870bee31.gif)

###### 音楽付き:

“`
class ViewController: UIViewController {

func sakutaEmitterCell() {
let sakutaEmitterCell = CAEmitterCell()
sakutaEmitterCell.contents = UIImage

元記事を表示

MapLibre Native for iOS のセットアップ (SwiftUI) 2024年版

[MapLibre](https://maplibre.org/) は、フリーでオープンソースな地図ライブラリのプロジェクトです。様々なライブラリがありますが、iOSやAndroidといったネイティブアプリ向けのライブラリもあります。

この記事では [MapLibre Native for iOS](https://github.com/maplibre/maplibre-native/tree/main/platform/ios) のセットアップ方法を備忘録として残します。

## パッケージのインストール

Swift Package Manager を使って Maplibre Native のパッケージをインストールします。

Xcodeから `File` -> `Add Package Dependencies` をクリック

右上の検索欄に `MapLibre` あるいは `https://github.com/maplibre/maplibre-gl-native-distribution` と入力すると、下記の画像のように検索結果が表示される。

![スクリーンショット

元記事を表示

Flutter で Android や iOS のアプリアイコンを一括で変更したい!

# これなに
クロスプラットフォームなんだから Manifest だったり Assets.xcassets だったりと個別に設定やらないでアプリアイコンを一発で設定くらいできるでしょう。
そんな思いから何かないかなあと思って調べてみました。

# 設定手順
### 1. `flutter_launcher_icons` package を pubspec.yaml に追加
以下をターミナルで実行して追加する
“`zsh
$ flutter pub add flutter_launcher_icons
“`

### 2. 任意の場所にアイコンファイルを追加
基本的にはプロジェクト配下に `assets` フォルダを作成して、その中で設定しておくのが良さそう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2819748/342bda88-72b5-5a7a-27e8-3adf3bd45cce.png)

### 3. `pubspec.yaml` でアイコンファイルのパスを通す
どこ

元記事を表示

Flutterを採用している有名企業・有名アプリ

:::note info
「Flutterがどんなアプリに使われているか気になる!」という声をよく聞きます。そこで、実際にFlutterを採用している有名なアプリをいくつかピックアップしてみました。Flutterファンとしては、この魅力がもっと多くの人に伝われば嬉しいですね。
:::

### メルカリ「ハロ」
「スキマバイトを簡単に見つけられる」と評判のメルカリの新サービス、「ハロ」もFlutterを使用しています。

– [ホームページ](https://hallo.mercari.com/)
– [iOSアプリ](https://apps.apple.com/jp/app/%E3%83%A1%E3%83%AB%E3%82%AB%E3%83%AA-%E3%83%8F%E3%83%AD-%E6%80%9D%E3%81%84%E7%AB%8B%E3%81%A3%E3%81%9F%E3%82%89%E3%81%99%E3%81%90%E3%81%AB%E3%81%8A%E4%BB%95%E4%BA%8B%E3%81%A7%E3%81%8D%E3%82%8B/id6450022297)

元記事を表示

【Flutter】4/8~4/14でPrivacy Manifests対応したサードパーティSDK

Flutterで4/8~4/14に、Privacy Manifests対応したサードバーティSDKの一部を紹介をします.

# flutter_local_notifications: v17.0.1
v16.3.1+1で追加されてたと思いますが、4/13(土)に変更が加わったそうです。

![スクリーンショット 2024-04-14 23.08.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670224/63beac3e-9106-8c4a-8285-2e1caab43aed.png)
https://pub.dev/packages/flutter_local_notifications/changelog#1701

# fluttertoast: v8.2.5
4/14(日)に対応されたようです。
[#489](https://github.com/ponnamkarthik/FlutterToast/pull/489/files)にて対応されています。
![スクリーンショット 2024-

元記事を表示

Simulatorビルドかどうか判定する

UITestを書いていてシミュレータでビルドした時だけ処理をしたかったのでメモ

“`swift
#if targetEnvironment(simulator)
// シミュレータの場合
#else
// 実機の場合
#endif
“`

元記事を表示

1週間の習慣をサポートするアプリ「シュウカン」をリリースしました

こんにちは!趣味で個人開発をしているりょうやです。
習慣を管理するアプリをリリースしました。

https://apps.apple.com/us/app/%E3%82%B7%E3%83%A5%E3%82%A6%E3%82%AB%E3%83%B3-%E7%BF%92%E6%85%A3%E6%94%AF%E6%8F%B4%E3%82%A2%E3%83%97%E3%83%AA/id6480456838

## アプリ概要

このアプリ「シュウカン」は、1週間の習慣をサポートするアプリになります。「本を1冊読む」「ジムに3回行く」など1週間の中で行う習慣について記録を付けることができます。また、習慣を達成すると獲得できる「ご褒美ポイント」を設定することができ、ポイントによって自分にご褒美を与えてモチベーションを継続させます。

## アプリの機能

### 習慣管理機能

![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/4f3525c4-420b-f61d-09bc-5e56c47f

元記事を表示

iosあるある!「HTML&CSSでinputエリアにfocusした際、fixedが効かない問題」がReactコンポーネントでも発生したから解決する

# エラー概要

エラー概要参考記事はこちらをご覧ください
https://qiita.com/hibikikudo/items/2cb10536f4816d304f54
https://stackoverflow.com/questions/29001977/safari-in-ios8-is-scrolling-screen-when-fixed-elements-get-focus

簡単に画像で説明すると以下のような感じです

### デフォルト
![image_6487328.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3492127/878efad2-8707-d082-eaf9-0ba6ceccce9d.jpeg)
]

### バグ発生時
![image_6487327.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3492127/6cddb1ea-0426-8277-94d8-ce45e1981046

元記事を表示

iOS エンジニアとApple信者のための作業音楽紹介

# はじめに
先日、以下の内容でツイートしました:

https://x.com/Ktombow1110/status/1778222131807224052

WWDCのプレイリストが公開されているの、意外と知らない人が多いみたい🤔

ということで、Apple が提供している作業用BGMを紹介したいと思います。

今回の紹介ではタイトルに「iOS エンジニアとApple信者」とあるため、 **Apple Music** のみの紹介になります。

# WWDC
このセクションでは、WWDCで公開されるプレイリストについて詳しく紹介します。
WWDC では毎年以下の 2 種類のプレイリストが公開されます。
また、今回紹介するプレイリストは2023年のものになります。2024年も公開されると思うので楽しみですね!

## WWDC での楽曲プレイリスト
以下はWWDCにて製品・ツール紹介で使用された楽曲のプレイリストです:

ht

元記事を表示

【iOS】シミュレーターと実機で画面の背景色が異なってしまう場合

# 状況
某アプリの改修の業務をやっていまして、改修の中の1つとして、storyboardにて新しい画面(ViewController)を追加する必要が出てきたので、追加しました。
基本的な動作確認はXcodeのシミュレーターで行っていて、全ての画面は背景色は黒です。
中の実装も問題ないことを確認し、実機でビルドすると、新しく追加したビューだけ背景色が白く表示されてしまった。
なぜ??シミュレーターでもXcodeでのStoryboardでの見た目もちゃんと黒くなっている。

でも、iPhoneの外観モードで、ダークとライトがあるが、ダークが選択された状態だった。これをライトにしたら正常に黒くなってなんで??となった。
でも、他の既存の画面は外観モードがどっちでも背景色は正常に固定となっていた。

# 原因
色指定で、「Label Color」を選択していたのが原因だった。見た目は黒だったのでとりあえずこれを指定してしまっていてたが、他の画面はちゃんと「Black」を選択していた。
![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

WWDC24の開催日程が発表されたので予想をまとめてみる

# 概要
毎年6月あたりに開催されるWWDC24、今年は6月10日から6月14日(日本時間では6月11日から6月15日)の4日間に渡り開催される。WWDCでは例年macOS、iOS、iPadOS、watchOS、tvOSなどのソフトウェアが発表されます。またついでにと言わんとばかりの新しいハードウェア製品が発表されることもあります。

# 今出ている予想
それでは本題の予想についてまとめてみます。ここに記載されているものはあくまで予想なので必ず実現されるとは限らないので暇つぶしにと思って読んでいただければ幸いです。
まずはソフトウェアから…

### iOS 〜今年はAIの年になりそう〜
1. iOSのソフトウェアで大きく期待されているのは***Siri***です。Apple製品全般に搭載されているSiriですが賢いと言われるほどの機能はありませんでした。ですが今年のアップデートではSiriの機能が大きく変わると予想されています。具体的には複雑な質問に返答できるようになったり、24時間の会話を録音しその日の出来事を理解し何かアクションを起こしてくれるかもしれないなど。後者はプライバシー

元記事を表示

iOS 14以降、UICollectionViewのscrollToItem(at:at:animated:)メソッドは特定の状況下で壊れる

問題を回避するには、以下のように`scrollToItemメソッド`の前にページングを `false` に設定し、その後 `true` に戻します。

“`swift
self.collectionView.isPagingEnabled = false
self.collectionView.scrollToItem(at: indexPath, at: .left, animated: false)
self.collectionView.isPagingEnabled = true
“`

[参考](https://forums.developer.apple.com/forums/thread/663156)

元記事を表示

Swift UI入門手順

:::note alert
大学の研究室内の Wikiに書いた文章をそのまま持ってきてます。
すごく内容が薄いのでガチの初心者の人はもっと高品質な記事を参照してください。
:::

# はじめに
Swiftでアプリ作ってみてー
けど何やればいいんかわかんねーって人向けに参考になりそうな書籍や情報を置いとくわ。

# 注意点
– 環境構築の方法等はここでは記載しません。(ググればたくさん情報が出てくるので)
– 俺の偏った思想が混じってます

# 初学者向け
Mac持ってるから早速アプリを作りたい。。。。。が何から始めたらいいんやって人は
以下の本がおすすめ
![image.png](/attachment/65b3dbc42fb04eea4edc991a)

https://www.amazon.co.jp/SwiftUI%E5%AF%BE%E5%BF%9C-%E3%81%9F%E3%81%A3%E3%81%9F2%E6%97%A5%E3%81%A7%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%A7%E3%81%8D%E3%82%8B

元記事を表示

【2024年最新】Privacy manifest対応ガイド!アプリ開発者必見

:::note info
**App Storeにリリースする際に、5月1日から対応が必須になります。**

:::
# そもそも、Privacy manifestって?
Privacy manifestは、**アプリがどのようなユーザーデータに
アクセスしているかをAppleが把握するための仕組み**です。
アプリがユーザーの情報をどのように使用しているかを開示することで、
ユーザーのプライバシーを保護することができます。

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files

# 対応方法

対応方法は以下の2つになります。

– 使用しているパッケージをPrivacy manifest対応バージョンに上げる
– `iOS/Runner` 直下に `PrivacyInfo.xcprivacy` ファイルを追加する

# PrivacyInfo.xcprivacyファイルの作成

ここでは、 `iOS/Runner` 直下に `PrivacyInfo.xcprivacy` フ

元記事を表示

Build input file cannot be found: ~~Info.plist ビルドできないエラーについて

アプリを作成している中で、ファイル名に謎の空白が存在していることに気づき、途中でファイル名を書き直しました。
するとエラーがでしまいて、ビルドできなくなりました。

## 対処法
![スクリーンショット 2024-04-08 0.52.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3715605/7f50aa46-9cbc-bfcc-1687-17a270ca70d7.png)

緑線🟢で囲っているところ、変更前のプロジェクトファイル名/info.plistになっているはずですので、変更後のプロジェクトファイル名/info.plistに修正する。

## おわりに
学習を進めていく中で、エラーに出会い解決するたび成長を感じます。
これからも少しずつ着実に学習を進めていこうと思います。

元記事を表示

GoogleMobileAds周りでシミュレータでのビルドができなかった

# 起こったこと
とあるプロジェクトを久しぶりにXcodeひ開いて、ビルドしてシミュレータで動作確認しようとしたところ、下記のようなエラーが表示されてビルドができませんでした。

“`
あとでやり直してください。
Failed to load Info.plist from bundle at path /[パス]/GoogleMobileAds.framework;
Extra info about “/[パス]/GoogleMobileAds.framework/Info.plist”: Couldn’t stat /[パス]/GoogleMobileAds.framework/Info.plist: No such file or directory
“`

調べてみたところ、XcodeがGoogleMobileAds.frameworkのInfo.plistファイルをロードしようとして失敗しているっぽい。

# 試したこと
* とりあえず、Clean Build Folder(shift + cmd + K)
* 解消せず
* Xcode 再起動
* 解消

元記事を表示

OTHERカテゴリの最新記事