- 1. はじめに
- 1.1. Cocoapods管理ライブラリからプライバシーマニフェストと署名の対象となるSDKを調べる
- 1.2. 【iOS ARアプリ】5分でわかる簡単ARアプリ作成【RealityKit】【ARKit】
- 1.3. FlutterアプリのUIテスト自動化を取り組んでみた話
- 1.4. 【SwiftUI】iOS16から使えるlineLimitのreservesSpaceが地味に便利
- 1.5. Pieace Of Ego
- 1.6. ARUCOマーカーをiOSで使う
- 1.7. ARKitで現実のオブジェクトとインタラクトする【ARObjectAnchor】
- 1.8. iOS の UI テストに Maestro を試してみる
- 1.9. LINEログインの実装を検討してみた
- 1.10. TensorFlow Lite MicroをRustで再実装したBerryLite Runtimeの紹介
- 1.11. 【SwiftUI】輝度が低い色ほど透明度を上げる
- 1.12. 【SwiftUI】複数の物体をアニメーションさせる時に連動して動かない問題を解決する(iOS17))
- 1.13. 俺でもわかるSwift Concurrency
- 1.14. iOSでスクショ、画面録画防止するためのベストプラクティス
- 1.15. [UE5]リモートビルドを活用したIOS向けアプリ開発(実機にデプロイまで)
- 1.16. プログラミング教材を作ろう!Playground Book概論
【SwiftUI×SPM】SPMマルチモジュールでの画面遷移について
# 目的
– モジュールを疎結合にし、SPMマルチモジュール構成を採用するメリットを最大限享受できるようにすること。
– モジュール同士がお互いの存在を知らずとも画面遷移可能な実装を示します
– SPMマルチモジュール構成を採用したプロジェクトにおいて、画面遷移実装を行う際の検討材料になれば嬉しいです**本記事のゴール**
`SPMマルチモジュール上` で [swift-dependencies](https://github.com/pointfreeco/swift-dependencies) を用いた、`疎結合な` `画面遷移` を実装すること| 画面遷移 |
| —- |
| |# 記事を書いた背景
SPMマルチモジュールのメリットである、`ビルド時間の短縮` のた
【Swift】コード上で色を視覚的に認識できるように使用する
# はじめに
Xcodeでは色を視覚的に認識できるように使用できる`#colorLiteral`というものがあります。
これを多用するのは良くなさそうですが、色の定義部分で使用するにはひと目でわかるので便利そうです。補完などは出ないのでコードのコピペで使用しましょう
# どのように表示されるの?
![スクリーンショット 2023-12-25 20.42.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/2e74d928-9cdb-bc15-a6ae-fa2d2497d8c3.png)# 実装
“`swift
#colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)#colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
#colorLiteral(red: 1, green: 0, blue: 0, alpha: 1)
#colorLiteral(red: 0, green: 1
以前投稿していたコードに関してAI(GPT-4 Turbo)に聞いてみた結果
https://qiita.com/4q_sano/items/bf92f4ebf06d6bb1ead3
以前(2021年08月31日)、投稿した↑こちらの記事ですが、今ではAI(GPT-4 Turbo)に以下のように質問するだけで、理想的なコードを教えてくれます。
質問:**「WKWebViewでtarget=“_blank”に対応する方法は?」**
AI: リンクを現在のwebViewでロードするコードを作成質問:**「これをsafariで開くようにして」**
AI: リンクをSafariで開らくコードを作成:::note info
>navigationTypeが.linkActivated(ユーザーがリンクをタップした)である場合、そしてtargetFrameがnilまたはメインフレームではない(つまりtarget=”_blank”で開くリンクである)場合に、URLがSafariで開かれるようになります。こちらも配慮もされており、我々が見落としがちな実装もしっかりコーディングされております。
また、コードの解説も丁寧にしてくれます。“`swift:A
【SwiftUI】iOS 用のスクラッチ カード UI の実装
はじめに
はじめまして、Hridoy Chandra Das(リド)(@ihridoydas)です。
#### SwiftUI で、Google Pay 特典のスクラッチ カードのようなスクラッチ カードを作成します。
スクラッチカードは競技用に設計されたカードで、多くの場合、PIN を隠すために薄いカードストックまたはプラスチックで作られており、1 つまたは複数の領域に隠された情報が含まれており、不透明なカバーを剥がすことで明らかになります。
ユーザーはデバイスの画面上でカードを仮想的に「スクラッチ」「指で擦る」し、その下に隠されたコンテンツを明らかにすることができます。 このコンテンツは、クーポン コード、割引、その他の特典を紹介するためによく使用されます。
Cocoapods管理ライブラリからプライバシーマニフェストと署名の対象となるSDKを調べる
2024年春以降、Appleから指定されたSDKについて、App Store ConnectでこれらのSDKを含むアプリを提出する場合や、アプリのアップデートの一環としてこれらのSDKのいずれかを追加するアップデートを提出する場合には、プライバシーマニフェストを含める必要があります。
https://developer.apple.com/jp/support/third-party-SDK-requirements/
このうち、アプリに該当のSDKがCocoapods管理ライブラリで混入されているかどうかを調べるruby scriptを作成しました。
# ファイル
以下の2ファイルを同じディレクトリに配置します。
`pod_file_path`は任意のPodfile.lockのパスに置き換えてください。“`check.rb
def find_matching_keywords(text, keywords)
text = text.downcasematching_keywords = []
keywords.each do |keyword|
【iOS ARアプリ】5分でわかる簡単ARアプリ作成【RealityKit】【ARKit】
[株式会社やどかり Advent Calendar 2023](https://qiita.com/advent-calendar/2023/yadokari_qiita “アドベントカレンダー”) 17日目の投稿です!!
今年もやってきましたアドベントカレンダー。
これを見ると年の瀬を感じますね⛄️
自分はあまりエンジニアっぽく業務をやっていないので、あまり大したものを書けないのですが、暇つぶしにでも見ていただけたら幸いです※①こちらの記事の成分は5割が参考記事、5割がchatGPT、マジほんのちょっとの筆者の努力と気まぐれで書かれております。
※②もし間違った内容がありましたら優しく訂正してあげてください。モチベーションに関わります。# 5分でわかる簡単ARアプリ作成
| 項番 | 目次 |
|:—-:|:————-|
| 1 | [どんな動作ができるの](#1-どんな動作ができるの) |
| 2 | [実装について](#2-実装について) |
| 3 | [コード詳細](#3-コード詳細) |
| 4 | [終わりに](#4-終わりに) |#
FlutterアプリのUIテスト自動化を取り組んでみた話
この記事は、[テスト自動化の成功事例を語ろう by T-DASH Advent Calendar 2023
](https://qiita.com/advent-calendar/2023/t-dash02) の8日目です。# はじめに
Flutterアプリを趣味で作っていて、UIやLintなどのテストを自動化するCI/CDを一度やってみたくて、この度取り組んでみました。
今回は様々あるテストの中でも、UIのビジュアルテストに取り組んでいきます。毎度デグレしていないかアプリのUIを見て触って確認するのも大変ですしねぇ。
ではやっていきましょう。# 今回実施するテスト
## Golden Test
FlutterのGolden TestはFlutterフレームワークで使用されるUIコンポーネントやWidgetのビジュアル外観をテストするためのアプローチの一つです。
Golden Testにより、UIが期待通りに変更やレンダリングされていることを確認することができます。Golden TestはGolden Fileと呼ばれる正しいUIの画像ファイルと、スクリーンショッ
【SwiftUI】iOS16から使えるlineLimitのreservesSpaceが地味に便利
# はじめに
iOS16から`lineLimit`に新たな引数が指定できるようになりました。
`reservesSpace`です。# reservesSpaceで何が変わる?
![スクリーンショット 2023-12-24 23.18.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/be009e9b-3e73-5ae6-4682-3cfe06d18c39.png)`reservesSpace`に`true`を指定すると想定される行数分のスペースを確保してくれます。
今回でいうと3行に満たないTextでも3行分のスペースを用意してくれているのがわかります。一方、`reservesSpace`に`false`を指定している方はTextに行数分のスペースしか与えられていません。
“`swift
import SwiftUIstruct ContentView: View {
var body: some View {
VStack(spacing:
Pieace Of Ego
個人開発中のアプリケーションについて紹介していきます。
—
| | 記事内容 |
|:-:|:————-|
| 1 | [アプリ概要](#1-アプリ概要) |
| 2 | [開発環境](#2-開発環境) |
| 3 | [機能](#3-機能) |
| 4 | [スクリーンショットとデモ](#4-スクリーンショットとデモ) |
| 5 | [ソースコード](#5-ソースコード) |# 1. アプリ概要
– **タイトル**: Pieace Of Ego
– **内容**: 世界に一つの**カード**を作成し、**オンライン**上で最高に**クール**な**バトル体験**を提供する。
– **目的**: **サーバーサイド**の知識を深め、特に**トランザクション処理**の理解を進めるためのプロジェクト。また、**IOS**業界の拡大を見越して、**Swift**の技術を習得することも目指した。
# 2. 開発環境
– GitHub
– Xcode
– Swift
– Firebase
– firestore
ARUCOマーカーをiOSで使う
# シンプルに検出する方法
### 1、OpenCVをXcodeプロジェクトに入れる
色々方法ありますが、これがシンプルかと。
ARUCOを含んだopenCV-iOSフレームワークを以下からダウンロード。https://drive.google.com/file/d/1SpEmjRedHKq4XxWXAXiLv8alnKq1cuJ7/view?usp=sharing
zipを解凍してopencv2.frameworkというファイル名にしてXcodeプロジェクトのファイルのところにドラッグドロップしてコピー。
### 2、Objective-Cファイルとヘッダーとブリッジング・ヘッダーを作る。
OpenCV.mm(Objective-Cファイル。拡張子はmからmmに変更)
OpenCV.h(ヘッダー)
{プロジェクト名}-Bridgeng-Header.h(Objective-Cファイルを作ると自動生成のポップアップが出る)
という3ファイルを作り、OpenCVの関数呼び出しコードを記述。“`obj-c:OpenCV.mm
#import
ARKitで現実のオブジェクトとインタラクトする【ARObjectAnchor】
**現実のものとARオブジェクトを関係を持たせて配置したい**。
箱の上にARオブジェクトを置くとか。
そのためには、3次元の物の位置と大きさをつかむ必要がある。
ARKitの平面検出や、FeaturePointでは、詳細に物体の形状を認識できない!
LiDARならポリゴンメッシュが取れるけれど、搭載端末は少ない。
機械学習で2次元の位置形状はとれるが、3次元への変換がむずかしい。**スキャンして物体を登録しておいて検出してみよう。**
妥協策として、物体をあらかじめスキャンすることで、ARアンカーとして位置検出する方法がある。![May-15-2021 10-08-22.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/0b42d2e6-c0e3-d3b0-beb1-d831ed584003.gif)
#スキャン済みのオブジェクトを検出する
###スキャン済みオブジェクトの登録
Assets.xcassetsの+ボタンからAR Resorsesのフォルダを作って、.arobje
iOS の UI テストに Maestro を試してみる
# はじめに
UI 向けのテストツールはいくつかありますが、`Maestro` は後発?のツールです。
`DroidKaigi` の勉強会を発端?に SNS でも少し話題になっていたので、チームで試して見ました。こちらは試してみた系の記事も出回っているので、重複した内容もあると思いますがお付き合いくださいmm
(半分は自分のメモようみたいな感じです、あしからず)## Maestro とは?
UI テストを従来のもの(`XCUITest`)より簡単に書けるツールです。
具体的には指定された yml 形式で書くだけです。https://maestro.mobile.dev/
タイトルは `iOS` ですが、`Android` もテスト可能です。
(フレームワークとしては `Flutter`, `React Native` も対応している)さらにオープンソースになっており、無償で使うことができるのも面白い点です。
h
LINEログインの実装を検討してみた
## やりたかったこと
– webアプリ
– スマホアプリ
LINEログインをどちらも実装したい。## 実際にどうやるのか
細かい事は公式マニュアルに細かく記載してあるのではしょりますが、
簡単な図を使ってざっくりと説明して行こうと思います。### 必要な設定・情報
実装するにあたり必要な前設定ですが。
– 公式アカウントを作成
– LINE Developersにビジネスアカウントでログイン
`サービスを利用するにはLINEアカウントと連携してください。`と表示されるので、連携する。
(公式アカウントで始めていれば問題ないと思いますが個人のLINEアカウントが必要ケースもあります)
– プロバイダーとチャンネルを作成#### チャンネルを作成と以下の情報の取得が必須
:::note info
Channel ID: チャンネル登録時に発行されるID
Chennel secret: チャンネル登録時に発行される秘密鍵
Callback URL: 認証後の遷移先 URL 登録(複数可)
:::### ユーザーに認証と認可を要求する
LINEプラットフォームとユーザーの
TensorFlow Lite MicroをRustで再実装したBerryLite Runtimeの紹介
この記事は[Rust Advent Calendar 2023](https://qiita.com/advent-calendar/2023/rust) シリーズ3の22日目の記事です.
[TensorFlow Lite for Microcontrollers](https://www.tensorflow.org/lite/microcontrollers?hl=ja) インタープリターをRustで再実装しました.
(ずっと25日に登録したと勘違いしていて,大急ぎで書いています.)
BerryLiteのリポジトリは以下です.https://github.com/kadu-v/berrylite
また,BerryLiteを使用したiOSデモアプリのリポジトリは以下です.
https://github.com/kadu-v/BerryLiteDemo
この記事では,まずBerryLiteの概要と使用方法について説明します.
最後に, BerryLiteを組み込んだiOSでもアプリを実装したので,紹介します.## BerryLiteを開発した動機
[TensorFl
【SwiftUI】輝度が低い色ほど透明度を上げる
# はじめに
`luminanceToAlpha`という機能を発見して、使ったことがなかったので調べてみました。
簡単にいうと、Viewの色が明るければ明るいほど、Viewが透明になるよって機能です。iOS13から使えるようですが、あまり登場シーンがないので存在を知りませんでした。
# サンプルアプリ
![Simulator Screen Recording – iPhone 15 – 2023-12-23 at 22.42.10.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/096d38b4-ad6a-2a0f-28da-7e51c617126e.gif)# 実装
“`swift
import SwiftUIstruct ContentView: View {
@State private var selectedColor = Color.blackvar body: some View {
VStack {
【SwiftUI】複数の物体をアニメーションさせる時に連動して動かない問題を解決する(iOS17))
# はじめに
iOS17で`geometryGroup`という機能が追加されていました。
ドキュメントを見ても意味不明だったのですが、使ってみたら納得したので記事にしておきます。# やりたいこと
![Simulator Screen Recording – iPhone 15 – 2023-12-22 at 20.04.04.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/8281aacf-920c-038c-68e0-653b81d52ed7.gif)# しかし、こうなってしまう
![Simulator Screen Recording – iPhone 15 – 2023-12-22 at 20.03.30.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/95c312f1-ff0e-1876-e60a-5f01702efa52.gif)# 問題のある実装
“`swift
im
俺でもわかるSwift Concurrency
この記事はCA Tech Lounge Advent Calendar 2023の22日目の記事です。
# はじめに
こんにちは!大学三年生のFJ2123と申します。
大学で物流や情報について学ぶ傍ら、CA Tech Loungeには今年の5月から、iOSエンジニアとして参加しており、日々メンバーの方々と交流しながら開発に励んでいます。
せっかくラウンジのアドカレの枠をいただけたので、今回はiOSエンジニアとしてかつ、他職種の方にもイメージだけでも掴んでいただけるように、~~そこはかとなく~~Swift Concurrencyについてまとめていきたいと思います。:::note warn
記事内に間違いがあった際はお知らせいただければ幸いです。
:::# そもそもConcurrencyって何?
ConcurrencyはSwift5.5(2021年6月頃) から登場した言語機能です。
具体的には以下の2つを従来と比べて、簡潔&安全に記述することができます。1. 非同期処理
2. 並行処理## 非同期処理
Swiftでは非同期処理をクロージャーのコールバックで実装して
iOSでスクショ、画面録画防止するためのベストプラクティス
この記事は[and factory.inc Advent Calendar 2023](https://qiita.com/advent-calendar/2023/andfactory) 22日目の記事です。
昨日は @yuu__uuki さんの[SwiftUIでのタップ処理の実装と応用](https://qiita.com/yuu__uuki/items/833dbe566ebc855c2aed)でした。https://qiita.com/advent-calendar/2023/andfactory
https://qiita.com/yuu__uuki/items/833dbe566ebc855c2aed
## はじめに
著作権的に慎重に扱うべきコンテンツをモバイルアプリでサービス提供する際に、ユーザーのスクリーンショット操作をどう扱うかという問題は避けて通れないと思います。たとえば動画サービスの大手Netflixさんのアプリでは、動画再生中にスクショを撮ると下のように作品部分が黒塗りされて作品画像が保存されないような仕組みになっています。
![IMG_2805.
[UE5]リモートビルドを活用したIOS向けアプリ開発(実機にデプロイまで)
# はじめに
こちらは[Unreal Engine (UE) Advent Calendar 2023](https://qiita.com/advent-calendar/2023/ue) の記事になります。
「UnrealEngine5でIOSアプリを作ってみたい」という方の参考になれば幸いです。また、間違っている点を発見された場合はご指摘いただけると嬉しいです。
>参考文献:[Unreal Engine 4でiOSアプリを開発する4つの方法](https://soramame-games.com/setup-ios#comment-47)# 動作環境
Unreal Engine 5.1.0
iOS 17.1.2
Visual Studio 2022
MacOS 13.2.1
Xcode 14.2# 開発環境
UE5でiOS向けのアプリ開発環境は大まかに分けると以下の4つに分類できます。1.WindowsでBlueprintのみのプロジェクト
2.WindowsでBlueprint&C++のプロジェクト
3.MacでBlueprintのみのプロジェクト
4.Macで
プログラミング教材を作ろう!Playground Book概論
この記事は、[フラー株式会社のカレンダー | Advent Calendar 2023 – Qiita](https://qiita.com/advent-calendar/2023/fuller-inc) の 22 日目の記事です。
21 日目は [@devKyousuke](https://zenn.dev/ansuke) さんで [TShockを用いてAWSでTerrariaのサーバーをたてよう](https://zenn.dev/ansuke/articles/8056022806016f) でした。
# はじめに
> 学習指導要領の改訂に伴い、プログラミング教育は2020年度から小学校で必修化され、翌年には中学校でも必修化されました。
そして、AppleからSwift Playground Bookを使った中学校向けの教材もリリースされています。> プログラミング教育にフォーカスが当たり始めた今、我々も若きエンジニアを育てるために何かできることはないでしょうか?
> Swift Playground Bookなら、若い世代にプログラミングの楽しさを知ってもらうための教