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

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

【SwiftLint】1行だけSwiftLintの対象外にする

# はじめに
「全体には適用したいルールだけど、この箇所だけは例外なんだよな。。。」
この部分だけエラーが出ないようにできないかな。。。

# やりかた
無効にしたいルールの名前を確認します。
![スクリーンショット 2022-12-16 19.29.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1e848e51-c4f8-01aa-2f2c-d02fb288e2b0.png)

対象の箇所に以下のコメントを追加します。
“`swift
// swiftlint: disable 無効にしたいルールの名前
“`

無事無効にできました。

# おわり
これを知って気づいたのですが、SwiftGenは自動で無効にするルールのコメントを追加してたんですねー
優秀〜
![スクリーンショット 2022-12-16 19.33.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/8fd79

元記事を表示

iOSはどのようにアプリの表示言語を決めるのか

日本語のみ対応しているFlutterアプリが、Appストア上で「言語:英語、日本語」と表示されて困ってしまいました。

![スクリーンショット.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13070/af19ab49-3aba-83e9-4944-ae93d89c38e6.png)
(※スクリーンショットはTestFlightアプリなので多言語が表示されるのは正しいのですが、ここにアプリ非対応の英語が表示されて困ったという話です)

解決のため、アプリの表示言語の仕組みを調査しました。

## 結論

Appleの下記サイトに表示言語の決定方法が記述されています。

[Technical Q&A QA1828: How iOS Determines the Language For Your App](https://developer.apple.com/library/archive/qa/qa1828/_index.html)

## iOSはどのようにアプリの表示言語を決めるのか

言語は以

元記事を表示

iOSのUWB通信用フレームワーク「Nearby Interaction」の基礎

# はじめに
スマートフォンの近距離無線通信といえば、みなさん Bluetooth, Wi-Fi, NFC あたりを思い浮かべるでしょう。実はiPhoneでは、UWB(超広帯域無線)というもう一つの無線通信があることをご存知でしょうか。
iPhone11 から iPhone に標準搭載されるようになった Apple U1チップ。Apple製デバイスをUWBに対応させる専用チップで、一般向け製品に UWB が搭載された初のケースです。特に近距離の正確な位置測位に強く、他にはないポテンシャルを秘めています。
しかし、LiDARスキャナの話題性に比べ、こちらはあまり使われているアプリを見ることがありません(Apple公式の「探す」アプリくらい?)。今回はそんな UWB と、Apple の UWB 技術を簡単に使える開発者向けフレームワーク「NearbyInteraction」についてご紹介いたします。

# 目次
– [UWBについて](#uwbについて)
– [UWBとは?](#uwbとは)
– [Bluetoothとの比較](#bluetoothとの比較)
– [

元記事を表示

Flutterでモバイルアプリ開発着手からリリース後まで。【感想】

この記事はリリースまでの一連のざっくりとした流れと感想を述べるにとどまり、年一回あるかないかぐらいの貴重なポエムとなっていることご了承ください。

約2年前の貴重なポエムはこちら

https://qiita.com/MasaoSasaki/items/bcdf9272437bdc6001c5

## 経緯
私はDMM WEBCAMPでRoRを学習したのち、インフラエンジニアに転職しました。
入社後の一年はインフラ系の入門的な資格を取得し、情シスなどを経てインフラ周りの業務知識を広く浅く習得しました。
インフラの知識・経験を得てゆくゆくはいつか開発エンジニアにという意志もあり、ご縁もあって今年の4月に開発職に転職しました。
入社後1ヶ月はLaravelのOJTがあり5月に入ると、上司から「スマホアプリどう?」と唐突に提案があり、少し迷いましたがその日のうちにやりますと返事をして、そこからはFlutterのOJTが始まりました。

余談かつ周りにはあまり言って来ませんでしたが、スクールの卒業前後には開発職になりたいという意志の裏に、Webアプリがある程度作れるようになったらモバイルアプリ

元記事を表示

【Combine】複数の値をまとめて監視する

# はじめに
ログイン画面などで全ての情報が入力されていない場合、ログインボタンを押せなくする動きを再現してみました。
複数の値をまとめて監視する方法を使用することで簡潔に書けたので紹介します。

# サンプルアプリ
![Simulator Screen Recording – iPhone 14 – 2022-12-15 at 21.16.34.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/d0cabd1b-b58e-26fc-b9bd-a39d0d7bba11.gif)

# 実装
### View
“`swift
import SwiftUI

struct ContentView: View {
@StateObject var viewModel = ViewModel()
var body: some View {
NavigationStack {
List {
Section {

元記事を表示

ONLYOFFICEでモバイル文書処理 〜アプリにモバイルエディタを導入する方法〜

紙文書の必要性は、とっくに過去のものです。文書処理のほとんどはデジタル化されています。ユーザーは外出先でドキュメントを扱う必要があるため、文字通り毎日ノートパソコンやデスクトップにアクセスすることなく、モバイルデバイスで文書処理は特に大きな需要を持っているのです。

この記事では、[ONLYOFFICE](https://www.onlyoffice.com/ja/)によるモバイル文書処理を取り上げ、モバイル統合がどのように機能するかをご説明します。

## アーキテクチャと技術スタック

ONLYOFFICE Document Server の通常のアーキテクチャには、以下のコンポーネントが含まれます。

* [server](https://github.com/ONLYOFFICE/server) – バックエンドサーバーソフトウェア層で、他のすべてのコンポーネントのベースとなるもの
* [core](https://github.com/ONLYOFFICE/core) – ファイルフォーマット間の変換を可能にするサーバーコアコンポーネント
* [sdkjs](https://

元記事を表示

OSのバージョン制限があるモディファイアを便利に使う方法(SwiftUI)

## はじめに

本記事は [SwiftUI Advent Calendar 2022 その2](https://qiita.com/advent-calendar/2022/swiftui) の1日目の記事です。

例えば [scrollDismissesKeyboard(_:)](https://developer.apple.com/documentation/swiftui/view/scrolldismisseskeyboard(_:)) がiOS 16.0から使えるように、OSのバージョン制限があるモディファイアを便利に使う方法を紹介します。

## 環境

– OS:macOS Ventura 13.0.1
– Xcode:14.2 (14C18)
– Swift:5.7.2

## 課題

iOS 16.0未満をサポートしている場合、iOS 16.0+のモディファイアはそのままでは使えません。

“`swift:SakatsuInputScreen.swift
struct SakatsuInputScreen: View {
var body: some Vi

元記事を表示

-34018 キーチェーンエラーに関して

Developer Technical Supportに問い合わせたところ、調査して頂いた結果、
Mac上で動くiOSアプリにおいて、MacOSに**entitlementsを検証する方法のバグ**があることがわかりました。

iOS13.1以降で修正したいとのことでした。
今後、解決されることを期待します。

# Developer Technical Support からの解析内容

macOS 12では`entitlements validated`となってるが、なぜかmacOS 13ではそれがない。
iOSアプリ自体は正常にprovisioning profileも含まれており、問題なくアプリが作成されていた。

>I looked at your issue in depth yesterday and I now understand its immediate cause. I ran your app on macOS 12 and macOS 13 and observed a key difference. Consider this on macOS 12:

元記事を表示

SwiftとJavaを比較してみた Swift:Java互換表

# はじめに
普段はiOSエンジニアとしてSwiftを使用してアプリ開発をしています。
サーバーはJavaメインで書かれているので勉強がてらSwiftとJavaの互換表を作ってみます。
基礎的なところから少しづつ更新していきたいと思っています。
ただSwift歴も浅いのでJavaは勿論、Swiftも間違いや、より良い書き方、こんな書き方もあるよ! といった際はコメントでご教示いただけますと幸いです。

# 変数
## 変数
“`swift:swift
// 宣言
var num: Int
// 代入
num = 0
// 初期化 (var 変数名 = 値)
var num = 0

var str = “もしもし”
var bool = true
“`
“`java:Java
// 宣言
int num;
// 代入
num = 0;
// 初期化 (データ型名 変数名 値;)
int num = 0;

String str = “もしもし”;
boolean bool = true
“`
・Javaには;セミコロンが付きます。忘れそうですね。
・Stringは大文字から始ま

元記事を表示

Vision.frameworkでクレジットカード番号を読取る(Swift)

![Xcode-14.1](https://img.shields.io/badge/Xcode-14.1-brightgreen) ![iOS-16.0](https://img.shields.io/badge/iOS-16.0-brightgreen)

## はじめに
クレジットカード番号の読み取りに[card-io/card.io-iOS-SDK](https://github.com/card-io/card.io-iOS-SDK)というライブラリを使っていたのですが 2016 年くらいにアーカイブされています。iPhone 12 Pro Max だとピントが合わないという事象もあるみたいです([これ](https://sbapp.net/appnews/app/upinfo/ios16/pintogaawanai-139826)と同じ?)。

Vision.framework を使うと文字認識ができるみたいなので自作に挑戦してみようと思います:muscle:

こんな感じです(手書きなのでちょっと精度下がりました:see_no_evil:)。

![demo](http

元記事を表示

心安らぐ重すぎチャットアプリ(物理)

@yuneco さんからバトンを受け取りました @mizuhugu35 です.
[クソアプリ Advent Calendar 2022 3 15日目](https://qiita.com/advent-calendar/2022/kuso-app)を担当させていただきます?

クソアプリ1年目です

## ?はじめに
皆さんは「重すぎる言葉」を言われたことはありますか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431953/0091be40-74e8-0f37-3710-65759360d5a7.png)

あいにく私は言われたことがないので、その心情があまりわからないのですが、友人が体験していたのをまじかに見て「重すぎる言葉」を受け止めるのは 大変そうだなナア と感じています

そこで閃いたわけです。重すぎる言葉には *物理的な重さ* を持たせてしまえばいいのでは.

お分かりでしょうか、百聞は一見にしかず、まずはご覧下さい。

## ?重すぎチャット

![omo

元記事を表示

【Swift】サードパーティ製キーボードの使用を検知する

# はじめに
アプリ内で機密な情報を扱う際にサードパーティ製キーボードを使われたくありません。
現在使用されているキーボードがサードパーティ製か判定できるようにしてみました。

# サンプルアプリ
![Simulator Screen Recording – iPhone 14 – 2022-12-14 at 20 01 01](https://user-images.githubusercontent.com/84154073/207577968-e06500d8-36aa-47d1-961b-0292957c3f26.gif)

# 実装
### View
“`swift
import SwiftUI

struct ContentView: View {
@StateObject var viewModel = ViewModel()
var body: some View {
VStack {
Text(viewModel.keyboard ? “サードパーティ製キーボードを使用中です” : “標準キーボードです”)

元記事を表示

【Swift】アプリ名称が離れすぎているとリジェクトされる話

・アプリリリース時になかなかにレアなリジェクトを食らったので紹介。

## 今回リリースしたアプリ
https://apps.apple.com/us/app/musicdictionary/id1641304793

## 1. リジェクトメッセージ
メッセージ本文ママ
“`
Hello,

Thank you for submitting your items for review. We noticed an issue with your submission that requires your attention.
Submission ID:
App Name: MusicDictionary

We look forward to working with you to resolve the issues with the following items:

App Version
1.4.1 for iOS

Guideline 2.3.8 – Performance – Accurate Metadata

We noticed that the app

元記事を表示

【Swift】Stubデータ作成に便利なお手軽protocol紹介

## 定義

“`swift
public protocol Stubbable {
static func stub(_ edit: (inout Self) -> Void) -> Self
static func stub() -> Self
}

public extension Stubbable {
static func stub(_ edit: (inout Self) -> Void) -> Self {
var stub = stub()
edit(&stub)

return stub
}
}
“`

## 使い方

“`swift
struct User {
var id: String
var name: String
var followers: Int
}

// 別ファイル(テストターゲット内)でextensionしてもOK
extension User: Stubbable {
// デフォルトのスタブを定義
static func

元記事を表示

React NativeでGoogle AdMobのバナー広告を出す

### 環境
– React Native:0.70.6
– pod: 1.11.3
– iOS:16.0

## 今回使うやつ

https://github.com/invertase/react-native-google-mobile-ads

## Google AdMobのアカウント作成

https://admob.google.com/intl/ja/home/get-started/

こんなもんに説明はいらねぇ
アカウント作ってアプリを追加。
広告ユニットも追加する。

## インストール

https://docs.page/invertase/react-native-google-mobile-ads

>_# Install the admob module
>yarn add react-native-google-mobile-ads

僕はnpmでやりたいんだい!!

https://www.npmjs.com/package/react-native-google-mobile-ads

npmに上がってたのでnpmでやる(いいのかなぁ)

“`

元記事を表示

flutter_webviewのWebViewをデバッグする

# はじめに
WebViewを組み込んだアプリを開発していると、WebViewのCookieや通信内容を見ながらデバッグをしたくなることがあります。
今回は、[webview_flutter](https://pub.dev/packages/webview_flutter)を使用しているwebviewのデバッグ方法を共有します。
※あまりフロントを触ってこなかったので、一部用語等が異なる可能性があります。ご了承ください。

## 対象
Flutterのアプリ内WebViewを[webview_flutter](https://pub.dev/packages/webview_flutter)で実装している人

## 用語
デベロッパーツール(Chrome)、Webインスペクタ(Safari)、などと呼ばれているアレを使用します。
どうやらChromeとSafariで呼び方が異なるようです。

## 環境
– Mac
– Android Studio
“`
Flutter 3.3.9
Dart 2.18.5
webview_flutter: 3.0.4
“`

# Flutter

元記事を表示

UnityIAPで課金を実装する (個人開発者向け)

# 概要

課金アイテムを実装してと言われてUnityIAPを触ることになった人に向けて備忘録として残しておきます。

# 目次
[1.前提](#1-前提)
[2.UnityIAPをプロジェクトに追加する](#2-unityiapをプロジェクトに追加する)
[3.実装](#3-実装)
[4.ストアの設定](#4-ストアの設定)
[5.おわりに](#5-おわりに)

# 1. 前提
CodelessIAPは使用しません。
レシート検証はこの記事では取り上げません。

# 2. UnityIAPをプロジェクトに追加する

Unityプロジェクトを開き、雲アイコンをクリックしてUnityGamingServicesを開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308814/18e1c421-74ce-7d85-efc0-2fb33ef02401.png)
InAppPurchasingをクリック
![image.png](https://qiita-image-store.s3.a

元記事を表示

【SwiftUI】マルチタスク画面に切り替わったら情報を見れなくする

# はじめに
iPhoneに標準でついているパスワード管理機能?(Twitterで二要素認証しようとしたら表示された)がマルチタスク画面に行くとパスワードなどが全て非表示になりました。
今回はそれを再現してみたいと思います。

# マルチタスク画面ってなに?
マルチタスク画面で合ってるの分からないので説明しておきます笑
![simulator_screenshot_DA3438A9-4838-48BE-AF01-560F80E4EE9F.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/6bc53154-fd72-9f8a-876c-df5c9a5cb871.png)

これのことです

# サンプルアプリ
![Simulator Screen Recording – iPhone 14 – 2022-12-13 at 20.38.22.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/93d7b

元記事を表示

はじめてのAppsFlyer: (1)アプリを管理画面に追加する

AppsFlyerを試用してみる手順をまとめます。
エンジニアの方が手元でテストするための「デバッグアプリ」としてアプリを登録する手順でまとめますが、基本的な手順は、本番リリース済みのアプリでも同様です。
(スクリーンショットは2022年12月現在のものになります。)

# サインアップ

まず、こちらのページからアカウントを作成するためサインアップします。

https://www.appsflyer.com/ja/start/

クレジットカードの情報などを入れなくても、アカウントを作れば下記の利用は無料でできます。試しにAppsFlyerを使ってみるのには十分かと思います。
– 12,000コンバージョン分(=計測リンク経由のアプリインストールもしくはアプリ再起動の数)の計測
– 各種有償のオプション機能の利用(30日間)
– ディープリンクを含むOneLinkの利用

![Monosnap 無料でアカウント登録!クレジットカードは不要です 2022-12-09 17-28-04.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

UIViewを砕く(Swift)

![Xcode-14.1](https://img.shields.io/badge/Xcode-14.1-brightgreen) ![iOS-16.0](https://img.shields.io/badge/iOS-16.0-brightgreen)

## はじめに
`SpriteKit` をさわっているときに天啓が降りました:bulb:

Confetti のパーティクルをちょっといじれば `UIView` を砕けるのでは?

ということでやってみました。完成形はこんな感じです。

![break](https://user-images.githubusercontent.com/34936885/207287914-a49c0156-6cbb-4985-b204-60306793747e.gif)

## SKSファイル作成
昔は SpriteKit Particle File にデフォルトであった Confetti を少し修正して使います。設定はこんな感じです。

particle

  • OTHERカテゴリの最新記事