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

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

モバイルアプリエンジニアがiPadの管理にMDMを導入した話

スタートアップに転職して現場の業務で利用するiPadの準備が大変だなぁと思いMDMを導入・運用したので備忘録です。

# 前提
– 複数の店舗があり各店舗で社内向けアプリをインストールしたiPadを業務で利用
– 私はこのアプリを開発するエンジニア
– 店舗のスタッフはアルバイトの方たち
– 総台数約100台

# MDM(モバイルデバイス管理)とは
> モバイル端末管理の略記。
> スマートフォンやタブレットなどの携帯端末を業務で利用する際に一元的に管理するための仕組み。
> MDMツールが提供する管理機能は、以下のようなものがある。
>  ・端末紛失時のリモート制御(ロック、データ削除など)
>  ・セキュリティポリシーやアプリケーションの配布、管理
>  ・アプリケーションや機能の利用制限と監視

引用:[ITトレンド](https://it-trend.jp/words/mdm)

# 導入のきっかけ
## キッティングの負荷が高い
– 共通のApple IDで1個1個ログイン
– App Storeから1個ずつ必要なアプリをインストール
– Wi-Fi情報の手動入力

元記事を表示

[SwiftUI] iOSバージョンごとにSF Symbolsを変更する方法

# はじめに

iOS 18から新しいSF Symbolsが登場しましたが、アップデートしていない端末ではアイコンが何も表示されない問題に直面しました。ここでは、iOSバージョンごとに異なるSF Symbolsを表示する方法を紹介します。実装自体かなり簡単なので、役に立てていただければと思います。

# 実装

“`swift
import SwiftUI

struct ContentView: View {
var body: some View {
// iOSのバージョンによって使用するSF Symbolsを変更
if #available(iOS 18, *) {
// iOS 18以上の場合
Image(systemName: “numbers”)
.font(.largeTitle)
} else {
// iOS 18未満の場合
Image(systemName: “arrow.2.c

元記事を表示

AndroidエンジニアのためのXcodeショートカット

# はじめに
今回は、AndroidStudioでよく使うショートカットのXCode版を紹介していきます
### 本文

読み出し先検索

AndroidStudioでは、関数などの実行箇所や実装箇所を探すのにはcmd+clickですが、XCodeではcmd+Clickが使えるのは関数などの実装箇所のみで実際に呼び出している場所を探すのには該当関数を選択した状態でctr+cmd+shift+hを押す必要があります。
押しづらい上に覚えにくいので、SideBarにある虫眼鏡アイコンからCall Hierarchyで検索する方も多いみたいです。

File検索

AndroidStudioではShift2回押しでファイルを検索できますが、XCodeではshift+cmd+oでプロジェクト内のファイル検索ができます

コード整形

AndroidStudioではcmd+opt+Lでファイル内のコードを整形できますが、XCodeではctr+Iで整形することができます
### 最後に
備忘録としての役割が非常に強いですが、どなたかのお役に立てれば幸いです
AndroidStud

元記事を表示

ジョブズの伝説的スピーチを知らない世代へ

## はじめに
13年前の今日、2011年10月5日は、あのスティーブ・ジョブズがこの世を去った日です。

スティーブ・ジョブズと聞くと、多くの人がAppleやiPhoneを思い浮かべるかもしれません。
彼自身をよく知らない人や、名前は知っているがその人生までは知らない人も、彼の歩んできた道からは多くの教訓を学ぶことができます。
2005年にスタンフォード大学の卒業式で行った伝説的なスピーチ「3つの話」では、彼の経験を通じて人生の大切な教訓が語られています。

この記事では、そのスピーチから「点を繋げること」「愛と喪失」「死」という3つのテーマを詳しく掘り下げ、ジョブズの偉大さを改めて讃えながら、彼のメッセージについて解説していきます。

![steve_jobs.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3552881/4e67f674-53ec-1e58-39c1-edc96bd7ed0d.jpeg)

## 点を繋げること
### 大学を中退した理由
ジョブズは大学を中退しています。それには複

元記事を表示

【iOS/macOS】iPhone / Mac メニューバーでテレビをみる

はい、緊急で書きました。

いろんなことできますね、ネットは。

デコードかキャッシュか、1分遅れです。

(更新中…)

【ffmpeg】VP9 コーデックから H.264 コーデックへの動画変換

元記事を表示

FlutterのshowDialogのAlertDialogサンプル

– Android、iOS用でそれぞれ環境に合うDialogを出力する
“`dart
import ‘dart:io’;
import ‘package:flutter/cupertino.dart’;
import ‘package:flutter/material.dart’;

class CommonDialogView {
static Future show(BuildContext context, String text) {
return Platform.isIOS
? _showCupertinoDialog(context, text)
: _showMaterialDialog(context, text);
}

static Future _showCupertinoDialog(
BuildContext context, String text) {
return showCupe

元記事を表示

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

# はじめに
SwiftUIでAnimationさせるときにtransitionというModifierを見かけたのですが、これが何をやっているのかよくわかっていなかったので、ふわっと学びたいと思います。

# 環境
– Xcode16
– iOS17

# transitionとは
公式のドキュメントによると、Viewの表示、非表示切り替えの際のAnimationを制御するModifireのようです。

https://developer.apple.com/documentation/swiftui/view/transition(_:)-5h5h0

>このビューが表示されたり消えたりすると、トランジションが適用され、アニメーション化が可能になります。
>次のコードは、条件に応じて MyView を表示し、表示または非表示になったときにスライド遷移を使用して表示します。
>“`
>if isActive {
> MyView()
> .transition(.slide)
>}
>Button(“Toggle”) {
> withAnimation {

元記事を表示

iOSアプリをAppStoreConnectに登録するまで

# 目次
1. はじめに
2. 前提
3. 環境
4. 実施したこと
1. App ID作成
2. 証明書の設定
3. AppStoreConnectへの登録
5. 最後に
6. 参考

## 1.はじめに
iOSエンジニアなのにiOSアプリをAppStoreに公開する方法を知らなかったので、どんなことをやる必要があるのか、実際に調べて、試してみました!
この記事では、AppStoreConnectに登録するまでに実施したことを紹介します。

**公開までの大まかな流れ**
1. AppStoreConnectに登録
2. AppStoreに申請
3. AppStoreに公開
* 申請が通ると、AppStoreに公開可能となる

**そもそもAppStoreConnectとは?**
AppStoreConnectとは、Appleが提供しているアプリの管理や申請を行うためのツールです。
アプリの名前や製造者名などを登録して申請することで、AppStoreに公開しても問題ないか確認することができます。
申請だけではなく、アプリの価格や年齢制限などの管理も

元記事を表示

SafariのみCookieからデータ取得できない現象に苦しめられた話

## 背景
toC向けのフォームにて広告等流入経路識別のために独自IDを割り振り、URLパラメータへそれぞれ埋め込んでいた。

## どんな仕組みか
各経路からWebフォームへ遷移する際にURLパラメータの各情報をCookieへ格納。その後コンバージョンでパラメータも併せて送信することで流入経路の識別に活用していた。

## 問題点

### プライバシーの観点から、トラッキングやCookie無効化設定をしているユーザが増えている
Cookieありきで構築したシステムの信頼性が揺らいでおり、フローの調整が必要

### Cookie利用可否判定のロジックが十分でない
元々は以下のようにdocuent.cookieの中身をチェックして判定していた。

“`js
if(document.cookie != “”){
//処理
}
“`

GTM・GAを利用していたこともあり、document.cookieが空のままフォームを訪れる状況は想定外だった。
ただし昨今のSafariではサードパーティスクリプトの呼び出しをブロック、または遅延させるようになっているようで、ユーザの初回訪問時に上

元記事を表示

iOSのテストを自動化してみる

# 実現したいこと
あくまでiosアプリを自動的に操作して、自動的にエビデンスを取る仕組みを作りたいということ。
内部結合・外部結合といった感じで内容によっては自動化できないものもあるがそこはまた別の機会に。

# 環境構築
※Mac bookのm1 Pro
– maestroを入れる
– javaを入れる
– Facebook IDBを入れる(iOS自動化をお助け)

# 自動化してみる

以下のコマンドを実行し、シミュレーターを開く
“`
open -a Simulator
“`

サンプルを落とす
“`
maestro download-samples
“`

以下を実行して、サンプルアプリをシミュレーターにインストールする。
“`
cd samples
unzip sample.zip
xcrun simctl install Booted Wikipedia.app
“`

サンプルを実行したらこのように開かれる。
“`
maestro test ios-flow.yaml
“`
![image.png](https://qiita-image-stor

元記事を表示

MacBook Air 最低構成でも快適に開発できるtips三選

**アプリ開発って高いスペックを要求される場合がありますよね。**

iOSアプリの開発を行なっているイッセーです。

現在、最低構成のMacBook Airでアプリ開発をしています。スペックは以下の通りです。

・チップ:**M1**, **8コアCPU**
・メモリ:**8GB**
・ストレージ:**256GB**

正直ハイスペックのMacに買い替えたいのですが、そう簡単にはいきませんよね…

でも、少ないリソースでも効率的に開発できる方法を工夫すれば、十分に快適な環境を作れます。

てことで、如何にして低いスペックのMacでも快適に開発ができるか日々研究している私が、実践しているtipsを三つ紹介します。

## 使わないアプリは終了する
![スクリーンショット 2024-09-22 10.09.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3572387/d36bbc70-0df8-2b39-902b-5f367f369c9c.png)

まずは**メモリ対策**です。

元記事を表示

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にアップデートした際に発生したビルドエラーの解決方法についてまとめます。

この記事は、私自身の環境で直面したエラーとその解決方法を記載しています。
依存関係やバージョンによって異なるエラーが発生する可能性があるため、その際にはエラーメッセージをもとに適切な対応方法をお探しいただければと思います。

また、ここで紹介する方法が最適解というわけではないかもしれないので参考程度にご覧いただけると幸いです。

## 前提
Flutter 3.16 ⇨ 3.19以降では`build.gradle`の記述方法が変更されており、その影響で発生するエラーや対応策について詳しくは、[こちらの記事](https://flutter.salon/error_warning/flutter-3-19-with-android/)や[公式](https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply)で解説されています。この変更点を理解しておくことで、ビルドエラーの解決が

元記事を表示

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 はオプションとして扱われていますが、実際には設定が必要

元記事を表示

OTHERカテゴリの最新記事