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

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

FlutterでWarning: CocoaPods minimum required version 1.10.0 or greater not installed. Skipping pod install. CocoaPods is a package manager for iOS or macOS platform code. Without CocoaPods, plugins will not work on iOS or macOS. の解決方法

# はじめに
IOSのエミュレーターでビルド中に以下のエラーが出てなかなか解決できなかったのですがどすこい塾のかたに聞いたところ一発で解決できたので皆さんにも共有していきたいなと思います。
#### エラー内容
“`
Warning: CocoaPods minimum required version 1.10.0 or greater not installed. Skipping pod install.
CocoaPods is a package manager for iOS or macOS platform code.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/to/platform-plugins
To update CocoaPods, see https://guides.cocoapods.org/using/getting-started.html#updating-cocoapods
Cocoa

元記事を表示

iOSとAndroidでPWAをサポート

*この記事は韓国語から翻訳したものです。不十分な部分があれば、いつでもフィードバックをいただければありがたいです! ([オリジナル記事](https://blog.chungjungsoo.dev/dev-posts/pwa-support/), 同じく私が作成しました。)*

今回、[バスハニャーンサービス](https://hybus.app)をリニューアルしながら、PWAをより良くサポートするための努力を書いてみたいと思います。

## PWAとは?

PWAとはProgressive Web Appの略です。

Web環境でのサービスは比較的発見されやすく、他の人にリンク一つで簡単に共有できる特徴があります。

一方、Nativeアプリのような場合には、システムにインストールする方式なので、ユーザーエクスペリエンスを最大化することができ、アプリドロワーからアプリアイコンをクリックして簡単にアクセスできるという特徴がある。また、Nativeはオフラインでも使用が可能です。

PWAはNativeのこのような長所をWeb環境でも同様にサポートすることができます。

バスハニャーンは

元記事を表示

【Flutter】Flutter 3.24.0にアップデートした際に発生したビルドエラーの解決方法

## はじめに
この記事では、Flutter 3.24.0にアップデートした際に発生したビルドエラーの解決方法についてまとめます。

これはあくまで私自身が直面したエラーとその解決方法ですので、他の環境で同様のエラーが解消出来るかは保証できません。また、パッケージ依存による他のエラーがある可能性もあります。

ここで紹介する方法以外に有効な解決策があるかもしれませんので、参考程度にご覧いただけると幸いです。

## 確認したエラー

### 1. Error: Type ‘UnmodifiableUint8ListView’ not found.

#### エラー文
“`
Error (Xcode): ../../../.pub-cache/hosted/pub.dev/win32-5.5.0/lib/src/guid.dart:32:9:
Error: Type ‘UnmodifiableUint8ListView’ not found.
“`
#### 原因
UnmodifiableUint8ListView クラスは、以前の Dart バージョンで利用されていましたが、Da

元記事を表示

UICollectionViewCompositionalLayoutで1つのgroup内のCellの高さを合わせる方法 uniformAcrossSiblings

# `UICollectionViewCompositionalLayout`で全てのCellの高さを合わせる方法 [uniformAcrossSiblings](https://developer.apple.com/documentation/uikit/nscollectionlayoutdimension/4173072-uniformacrosssiblings)

[uniformAcrossSiblings](https://developer.apple.com/documentation/uikit/nscollectionlayoutdimension/4173072-uniformacrosssiblings)を紹介します。

[What’s new in UIKit](https://developer.apple.com/jp/videos/play/wwdc2023/10055/)で紹介されていたものです。

`NSCollectionLayoutSize`の高さを`estimated`にすると、Cellの高さに応じてitemやgroupの高さが変化します。

元記事を表示

macOS SequoiaにアップデートしてXcodeもアップデートしたらFlutterで困ったのでメモ

# はじめに

macOSアップデートしたらトラブったので、今後のためにメモしておく。
勘違いもいくつかあったのもあったので。
今回はホント自分への戒め的なもの。

# 発生したこと解決のメモ
macOSをSequoiaにアップデートしてXcodeもアップデート。
そうしたら、使用しているFlutterのプラグインでエラーが発生。
問題解決につながったと思われることを書いておく。

Podfileのplatformを12.0から13.0に変更
https://t.co/em3r9phU9g のissueにある Allow Non-modular Includes In Framework Modules をYesにするを実施。

以下を実施(多分やらなくても問題ない事もやってるかも)
“`
flutter pub upgrade
flutter upgrade
cd ios
rm -rf ~/Library/Caches/CoccoaPodsrm
rm -rf Pods
rm -rf Podfile.lock
pod repo update
pod install
“`

# 勘

元記事を表示

【Swift】NavigationLinkで画面遷移する

## まえがき
この記事はSwift独学者による備忘録です。
万が一誤った記載がある場合は、コメントでご指摘いただけると幸いですm(_ _)m

## 確認環境
XCode Version 15.4
MacOS Sonoma 14.4.1

## Swiftにおける画面遷移について
Swiftの画面遷移には代表的なものが2つあり、そのうちの一つがプッシュ遷移と呼ばれるNavigationLinkを用いた遷移方法です。
プッシュ遷移では、画面が右から左に切り替わります。

もう一つはモーダル遷移といって、画面が下から現れる遷移方法です。
こちらは今回の記事では割愛します。

## コード例
今回は画面を3つ用意し、NavigationLinkを使用して遷移するようにしました。

“`Swift:ContentView.swift
import SwiftUI

struct ContentView: View {
var body: some View {
NavigationView {
VStack {

元記事を表示

iOSDC Japan 2024 参加レポート

## はじめに
2024年8月に開催された iOSDC Japan 2024 に、株式会社ゆめみのスカラシップ生として 3 日間現地で参加させていただきました。本記事では、イベントの感想や、特に印象に残ったセッションについてまとめます。

## イベント全体の感想

iOSDCは国内最大級のiOS開発者向けカンファレンスで、たくさんの参加者・スタッフの方たちと、広い会場に所狭しと並んでいるスポンサー企業のブースに圧倒されました。
セッションだけでなく、展示や食事、他の参加者との交流ができる点でお祭りのような活気があり、こうしたイベントに参加するのは初めてでしたがとても楽しむことができました!Twitter(X) で繋がっている FF の方々や、所属していたオンラインサロンの方々も参加されていて、同じ場所で一緒に参加できて嬉しかったです!(交流は人見知りのせいであまりできませんでしたが…)

セッションについてはやはり難しい内容のセッションが多く、話についていけないセッションもありましたが、そう感じているのは自分だけではないと知れて少し安心しました。色々なセッションを見ていると、自分でも

元記事を表示

Reality Composer Proでシーンを作ってiOSのRealityViewのVirtual Cameraで表示

# はじめに

Reality Composer Proは、GUIで3Dコンテンツを配置したり、Shader Graphでシェーダーを作成することできるツールです
iOS 18からRealityKitの[RealityView](https://developer.apple.com/documentation/realitykit/realityview)が利用できるようになりました
Reality Composer Proで作成したシーンを、RealityViewの非ARモードのVirtual Cameraで表示してみました
(Reality Composer Proで作成したシーンをiOSなどvisionOS以外で利用できるようになったのもXcode16からかも?)

| Reality Composer Pro | iOS |
| :-: | :-: |
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214313/3073a17e-5f0a-5dbd-7ebd-e220c87

元記事を表示

iOSのPWAでプッシュ通知がうまくいかない場合の対処法

ReactのブロジェクトでFirebase Cloud Messagingを使用してプッシュ通知を実装しました。その際、iOSのPWA(Progressive Web App)で、プッシュ通知が来ない・iPhoneの「設定」>「通知」>の一覧にインストールしたPWAが表示されないという事象に直面しました。本記事では、デバッグしていく中でぶつかった、いくつかのエラーとその解決策について説明します。

## エラー1:NotSupportedError: Subscribing for push requires an applicationServerKey
**エラーメッセージ**: `NotSupportedError: Subscribing for push requires an applicationServerKey`

**原因**: このエラーは、pushManager.subscribe メソッドに applicationServerKey が不足している場合に発生します。applicationServerKey はオプションとして扱われていますが、実際には設定が必要

元記事を表示

まったくのiOSアプリ初心者が、5日間で一通り動くアプリを作った話

こんにちは。今日はまったくのiOSアプリ初心者である私が、たった5日間でアプリを作り上げた経験についてお話しします。アプリの詳細は話すことができないことをご了承ください。結論から言うと、WebSimを使ってWebページを作り、WebViewを使ってHTMLページを表示させることでプロトタイプを作り上げたという話です。

# 背景

私はこれまでWeb開発に携わってきましたが、ネイティブアプリの開発は初めてでした。ある日、上司から「とあるiOSアプリを作ってほしい」という依頼が舞い込みました。初めての経験でプレッシャーを感じましたが、なんとかスピード感を持って取り組みたいと思いました。私はiOSアプリ開発やSwiftについて全く知りませんでしたが、アプリの見た目をリッチなものにしたいという思いがありました。

# Webページの作成

iOS開発環境はすでに整っていたので、iOSアプリのプロジェクトを作成しました。
何かWeb開発の知識をそのまま活かせる方法はないかと思い、ClaudeにSwiftでHTML、CSS、JavaScriptを表示する方法はないかと尋ねました。そうすると、ある

元記事を表示

写真アルバムからTransferableによって画像を取得 (iOS)

# 写真アルバムから`Transferable`によって画像を取得 (iOS)

`Transferable`に準拠した画像クラスを以下のように設計しました。自分のアプリできちんと動くように、適宜修正してください。

“`swift
final class ImageTranseferable: Transferable, Sendable {
let url: URL

init(url: URL) {
self.url = url
}

static var transferRepresentation: some TransferRepresentation {
FileRepresentation(importedContentType: .image) { receivedTransferrable in
if receivedTransferrable.isOriginalFile {
return ImageTranseferable(url: rec

元記事を表示

listRowSeparatorの設定が効かないとき

# listRowSeparatorとは
ListのSeparator(下線)を表示有無とSeparatorのPaddingを制御できるModifierです。
デフォルトではSeparatorがついているので、非表示にしたいもしくはPaddingをデフォルトから変更したい場合に使用する必要があります。

`デフォルト`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3359094/e23e61d5-5096-7525-139a-0735427b3a31.png)

`.listRowSeparator(.hidden)`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3359094/6210b772-1833-cb3b-77ec-221ed3351d65.png)

# ハマったところ
以下のようにModifierを設定しても、Separatorが非表示になってくれませんでした。

元記事を表示

歴5年のバックエンドエンジニアが初めてiOSアプリを作成・公開して、一週間経った収益を公開する。

私は普段フリーランスでGoのバックエンドエンジニアをやっています。

Xcodeは先月インストールしました。

Swift全然分かりません。
ドラッグ&ドロップでボタンの追加とか出来るみたいですが、
何だかよく分からないので男らしくコーディングでねじ伏せました。

そんな男らしい人間が作った男のアプリです。

## 結論:point_up:

![スクリーンショット 2024-09-28 18.01.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455017/e067a52c-24ba-d877-714d-776c191730af.png)

![スクリーンショット 2024-09-28 18.02.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455017/981d06dc-4172-9b76-8b8b-c1e9fa479a71.png)

![image.png](https://qiita-image-

元記事を表示

Swift, SwiftUIで「⚪︎秒後」を実現する!!

## 結論

以下を実行する!
“`swift: SampleView.swift
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
# 以下に5秒後に行いたい処理をかく。
print(“5秒経ちました”)
}
“`

上記では、5秒後に、「5秒経ちました」と出力されますね。

## まとめ
簡単ですね。
これ以上述べることがないので、今回はこれで終わりにします。

## 最後に
少しでも参考になれば嬉しいです。
また、個人的に手書き機能を搭載したアプリを開発したいと考えているのですが、手書き機能の実装経験のある方やおすすめの方法等あれば、教えていただきたいです!!(UIkit, SwiftUI)

最後までお読み頂きありがとうございました!!

元記事を表示

Flutterで別アプリ起動する手順(カスタムURLスキームだけ)

## 想定している要件
– カスタムURLスキーム(CustomURLScheme)でインストール済みの別アプリへ遷移させたい
– Androidのアプリリンク(App Links)は使用しない
– iOSのユニバーサルリンク(Universal Links)は使用しない
– そのほかFirebaseDynamicLinksなども使用しない
– ユーザーは必ず遷移先のアプリをインストール済みである

## 遷移先のアプリの事前確認事項
### Android
– ``が存在するか確認し、ない場合は追加、ある場合は`android:scheme`の値を確認する
– `android:exported=”true”`になっているか確認する
– 記述がない場合はfalse扱いとなるためtrueを明示的に記述する
– `yourcustomscheme`は衝突しないようにユニークな名前を付ける

“`android/app/src/main/AndroidManifest.xml
M1 Mac に .NET 8 の MAUI を入れて iOS と Android アプリを試してみた

.NET6 で MAUI がプレビューの時にも試してみましたが、改めて .NET8 で MAUI を試してみました。前提となる Xcode や Android Studio はインストール済みで、Visual Studio Code には MAUI や C# の拡張は無い状態(未インストール)で動きました。

https://qiita.com/mnrst/items/a43a32424b84ed2fd432

## .NET に MAUI をインストール

“`zsh:zsh
% sudo dotnet workload install maui
“`

## MAUI アプリを作成

“`zsh:zsh
% dotnet new maui -o mnrmaui

% cd mnrmaui
“`

## iOS でアプリを実行

“`zsh:zsh
% dotnet build -t:Run -f net8.0-ios
“`

## iPad Pro 13-inch (M4) の画面

![dotnet8-maui-01.png](https://qiita-image-

元記事を表示

iOSショートカットアプリでPythonを実行する

# 概要

iOSのショートカットアプリ単体でPythonを実行するショートカットを作成した。

## 完成したショートカット

結論以下のショートカットを実装した。

![IMG_0269.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57640/778ccc72-9b8a-a12d-89f8-f9b3a9dd7a6f.png)

# 背景

翌朝出すべきゴミの種類を、夜にHomePodからアナウンスさせる仕組みを作成しようと考えた。最初はChatGPTのショートカットを使って自動化を試みたが、バージョンによって回答が不安定だったり、スマホがロック中にショートカットを実行できないという問題があった。これらの課題を解決するために、ショートカットアプリ内でChatGPTの処理をPythonに置き換える方法を検討した。

# 実装

## 方針

ショートカットアプリでPythonコードを実行する方法はいくつか考えられたが、すでにインストール済みの[a-shell](https://github.com/h

元記事を表示

SwiftUIのAnimationについてふわっと学ぶ(animatableData編)

# はじめに
SwiftUIのアニメーションを実装するときに時々見かける`animatableData`
何のことかさっぱりだったので、キャッチアップしてみました。

# animatableDataとは
早速`animatableData`とはなんなのか、`animatableData`でググって一番最初に出てきた下記の記事を見てみました。

https://qiita.com/takehito-koshimizu/items/786dac0741e19552907b

`animatableData`は`Animatable`プロトコルが持つプロパティのようで、`animatableData`に設定した値が変わることでその値に紐づくコンポーネントがアニメーションできるようになるみたいです。

とは言っても文面だけでみても理解しきれなかったので、サンプルコードを書いてみます。

# やってみる
まずはanimatableDataを定義せずにアニメーションするのかを確認しました。
四角形のカスタムShapeをタップすると横幅と縦幅を変えるようにしました。
`animatableData

元記事を表示

ToggleとToggleライクなボタン (iOSアプリ)

# ToggleとToggleライクなボタン (iOSアプリ)

ToggleはAppleのデザインガイドライン[Toggles](https://developer.apple.com/design/human-interface-guidelines/toggles)によると、リスト形式のみで使用することが推奨されています。

例えば、

![Simulator Screenshot – iPhone 15 Pro – 2024-09-26 at 00.27.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373549/7fcd210d-9574-5ff6-24ae-6fbd0ea11243.png)

上の画面では、リスト形式でToggleを使用しています。これはAppleのデザインガイドラインに沿った設計となります。

それ以外ではToggleライクなボタンの使用を推奨しています。例えば、iOSで元から搭載されているカレンダーアプリの右上で使われています。

![Simulator Scre

元記事を表示

iOS18でLiveActivityのAppIntentが動かない問題の対応

# 遭遇した問題
iOS18のシミュレーターでLiveActivityにAppIntentで実装したボタンが効かなくなった
具体的には下記キャプチャの赤枠部分をAppIntentで実装しており、タップしても実装している処理が走らなくなりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3359094/aa1cdc0d-9cb1-8d12-b7b1-d82016989003.png)

AppIntentは以下のように実装していました。
“`
import AppIntents

struct TimerStopIntent: AppIntent {

static var title: LocalizedStringResource = “Stop”

@MainActor
func perform() async throws -> some IntentResult {

・・・

元記事を表示

OTHERカテゴリの最新記事