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

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

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なら、若い世代にプログラミングの楽しさを知ってもらうための教

元記事を表示

実装時の「違和感」と向き合ってみた

# はじめに

この記事は iOS Advent Calendar 2023 21日目の投稿になります。

今回は、普段開発している中で、ふと感じた **「違和感」** に関して自分なりにどのように向き合ったかを書かせていただきました。お時間ある時にでも読んでいただければ幸いです。

## 本題

例えば以下の要件がある画面を実装するとします。

– カレンダーを表示する
– 日付を選択し保存をできる画面
– ナビゲーションタイトルは「日付を選択」
– ナビゲーションタイトルはインライン表示
– ナビゲーション左には「キャンセル」ボタン
– ナビゲーション右には「保存」ボタン
– モーダル遷移で表示され、画面遷移しない、1つの画面でタスクを完結できること

上記の要件を満たすための画面を作る際、私は当初以下のような実装をしました。

“` swift
import SwiftUI

struct SampleDatePickerView: View {

@Environment (\.dismiss) private var dismiss
@Binding

元記事を表示

ビブルカードっぽいアプリを作りました。

「****クソアプリ Advent Calendar 2023」の22日目の記事です。****

https://qiita.com/advent-calendar/2023/kuso-app

# **1. 作ったもの**

ビブルカードっぽいアプリを作りました。

(開発者とワンピースとは一切関係がありません。)
(このアプリはしょーもないですが、ビブルカードにはロマンがあります。)

![Screenshot 2023-12-19 at 1.44.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158647/85d23866-8494

元記事を表示

ICAL TEMPLATE CAPCUT

1. **Introduction**
– Brief definition of iCal CapCut templates
– Importance in content creation

2. **Understanding iCal CapCut Templates**
– Explanation of iCal CapCut as a video editing tool
– Overview of templates and their role

3. **Advantages of Using iCal CapCut Templates**
– Time-saving benefits
– Consistency in visual appeal
– Customization options

4. **How to Access and Implement iCal CapCut Templates**
– Step-by-step guide to accessing templates

元記事を表示

【SwiftUI】Pickerの特定の項目をユーザーが選択できないようにしたい(iOS17)

# はじめに
iOS17から`selectionDisabled`というモディファイアが追加されていました。
これはユーザーが選択できなくさせるようにするための機能っぽいです。

例えば、課金でしか使えない機能を選択できなくするみたいなことです。

あれ、`disabled`でもできなかったっけって思ったのですが、Pickerだと機能してませんでした。

# サンプルアプリ
![Simulator Screen Recording – iPhone 15 – 2023-12-21 at 18.05.20.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/0a599128-e831-bb9d-4933-35e91e41a734.gif)

# 実装
“`swift
import SwiftUI

struct ContentView: View {
@State private var selected: Int = 0

var body: some View {

元記事を表示

結局Unityのモバイルアプリはどう計測したらいいんですか?(途中で力尽きたポエム)

# はじめに
Unityでモバイルアプリの性能を測ることになりまして、調査しながら計測をやってみたら色々罠を踏みました。
その結果をまとめました。誰かナレッジ作って。ないですか。じゃあ一通りまとめます。
技術情報はありますが、普遍的な内容にまとめられなかったのでポエム扱いです。

# ことのあらまし
– とあるUnity製のモバイルアプリがあります。
– 結構重い。
– じゃあ、アプローチとしてグラフィックを軽くしてみましょうか。
– UnityのProfilerで計測しましょうねー。
– せっかくだから実機でチェックしよう!
– Macも持ってるからiOSとAndroid両方チェックできるな!
– USAGEでGPUがどれくらい変化したか取ったらいいっしょ!

# 結果
– うわー!ほしい情報が取れない…
– **PROFILERのUSAGEで出てほしいのに!**
– 結局目論見通りに軽くなったのかわからない!
– **相手に説明できない!!**

# どうすればよかったか?
– まずはPCのUnityエディタ上で測ろう
– 何がボトルネックになるか、

元記事を表示

iOS 端末での Bluetooth 接続(Background)について

# はじめに
はじめまして。
リンクラフト株式会社で開発業務をしている akaishi といいます。
アプリ開発をしたり、社内のツールを作ったり色々と雑多にエンジニアをやっております。

この記事は [LINCRAFT Advent Calendar 2023](https://qiita.com/advent-calendar/2023/lincraft) の21日目の記事となります。

どうでもいい情報ですが、自分はリンクラフトのバイオハザード部の部長も務めております。
部員は自分1人だけですが!
皆さんもバイオやりましょう!!

# iOS 端末での Bluetooth 接続(Background)について🤔?
iOS での Bluetooth(BLE) の調査をする機会があったので備忘録も兼ねて記事にします。
本当は社内の Wiki にまとめようと思ってたのですが、色々あって書けていなかったので Advent Calendar で書いちゃえば一石二鳥なのでは!?と思い立った次第です。

### 調査する前の自分
以前(2016年ごろ)にも Swift で Bluetooth

元記事を表示

SwiftUIでのタップ処理の実装と応用

# はじめに
この記事は[and factory.inc Advent Calendar 2023](https://qiita.com/advent-calendar/2023/andfactory) 21日目の記事です。
昨日は @twumo さんの[【JetpackCompose】TabRowのインジケーターをカスタマイズする](https://qiita.com/twumo/items/26aa023ab71ffc09e2b2)でした。

最近個人的に実務でSwiftUIに触れる機会が増えてきたので基本的なタップ周りの処理をまとめておこうと思います。

### 基本的なタップ処理
#### タップジェスチャ(onTapGesture)
最も基本的なタップジェスチャで、ビューがタップされたときのアクションを定義します。

“`swift
import SwiftUI

struct TapGestureView: View {
var body: some View {
Text(“タップしてください”)
.onTapGestur

元記事を表示

iOSのデフォルトメールアプリを作ってみた

この記事は、株式会社 [ACCESS Advent Calendar 2023](https://qiita.com/advent-calendar/2023/access) の21日目の記事です。

こんにちは、メールアプリ [CosmoSia](https://cosmosia.net) の開発をしている @takuyakaneko です。
この記事では、iOS版CosmoSiaがデフォルトのEメールクライアントに対応するまでに行ったことを紹介します。

# iOSにおけるデフォルトアプリ

iPhoneを利用しているけどブラウザはChromeを利用したい、なんてことありますよね?
このようなユーザーの要望に応えるために、iOS14よりユーザーがデフォルトのWebブラウザやEメールクライアントを選択することができるようになりました。
Androidでは9から同様の機能を提供しており、iOSも追従してきた形ですね。

# デフォルトのEメールクライアントになるとできること

メールアプリもiOS上では他のアプリと扱いに変わりはなく、インストールするだけで普通にメールの送受信を行うこと

元記事を表示

FSCalendarでGoogleCalendar風のUIを作成する

## はじめに
この記事はSwiftのカレンダーライブラリである[FSCalendar](https://github.com/WenchaoD/FSCalendar.git)を使ってGoogleCalendarのようなUIを実現する方法について解説しています。

## 環境
* Xcode15.0.1
* Swift5.9

## 完成図
![Simulator Screenshot – iPhone 15 Plus – 2023-12-20 at 20.46.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2741705/793dbf88-e361-a731-86d5-07b1f940a632.png)

Google Calendarを意識しました。

![Screenshot 2023-12-20 at 15.07.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2741705/0eb24ffa-9d8

元記事を表示

【iOS】リリースしたアプリに高評価なレビューが来た時だけ通知する

# はじめに
アプリを開発してApp Storeにリリースした後、ユーザーからのレビューってめっちゃ気になりますよね。

良い評価をもらえた時はもちろん嬉しいです。
しかし、悪い評価をもらう事もあります。
悪い評価のレビューは暴言みたいなのも含まれていることがあります。

そんな悪い評価は見たくないですよね。

でも、良い評価をされた際は真っ先に確認したい。

そんな時にAppStoCeconnect設定です。

# 準備
– AppStoCeconnectのアプリをインストールしている
– 自分のアカウントにログインできている

# やりかた
設定したいアプリのページに行きます

1番下にスクロールすると「Notification」という項目があるので選択します。
Flutterでマイナンバーカードを読んでみた

## この記事について
この記事は [SUPER STUDIO Advent Calendar 2023](https://qiita.com/advent-calendar/2023/superstudio) の20日目の記事になります。

## マイナンバーを読んでみたい
会社のアドカレなのに、弊社のプロダクトと関係ないものを作って投稿するのもどうかと思うのですが、マイナンバーカードからマイナンバーを読んでみたいのです。

そう、ほら、あれだ、たとえばいつか転売対策とかでマイナンバーによるユーザー認証が必要になっちゃったりしなかったり、ECカートだってそういう需要があるかもしれないじゃないですか。なんとかしてマイナンバーカードからマイナンバーを読んでみたいのです。

…だって、**男女のマイナンバーを足して素数になるカップルをマッチングするマッチングアプリ**を作ってみたいと思ってしまったからです。

## マイナンバーカードの仕様について
マイナンバーカードのようなICチップを積んでいるICカードは、演算機能を持ったコンピューターのようなもので、単純な読み取りでもきちんとしたプロ

元記事を表示

2023年、書き初め ならぬ アプリ書き出し初め のノリでアプリ作ってみた

## はじめに
こんにちは、@mediaboxesです。
久しぶりにReactNativeのAdvent Calendarに投稿します。

ReactNativeはTypeScriptでiOSとAndroidの両方のアプリを作れるという、エコな開発でサクッとアプリを作って両OSのアプリを作るれるので、新規事業の開発で重宝しています。
最近はマネージメント層として開発から離れていたので、学びのために休日開発をやってみたので総括として投稿します。

## 作ってみた
### なぜ作ったか
業務でReactNativeで開発が多いのですが、長期運用するとバージョンアップで大変苦労してきました。
+ 素のReactNativeをバージョンアップするとネイティブプロジェクトが無限パズル
+ ExpoのManaged workflowでネイティブプロジェクトを考えなくて楽だが、やりたいことが出来ないことがよくある
+ ExpoのBare workflowで結局ネイティブプロジェクトを管理しなければいけない

しかし、Expo SDK 42で発表されたexpo-dev-clientを使うことで、Ma

元記事を表示

Compose Multiplatformで作ったQiitaリーダーにさらに機能を追加した

この記事はNTTテクノクロス [Advent Calendar 2023](https://qiita.com/advent-calendar/2023/ntt-tx) シリーズ2の20日目です。

こんにちは、NTTテクノクロスの戸部@etctaroと申します。

普段は社内でモバイルアプリ開発関連の技術支援や社内向けのノウハウ記事執筆、社内研修講師活動、社内コミュニティ活動などを行なっています。

今年はすでに[シリーズ1の2日目の記事](https://qiita.com/etctaro/items/5f142b0661e761756b36)を書いています。
この記事はその続きとなります。

Compose Multiplatformでちょっと気になるあれこれも色々とやりましたので、
ぜひこちらもお楽しみください。

# はじめに
[シリーズ1の2日目の記事](https://qiita.com/etctaro/items/5f142b0661e761756b36)のダイジェスト

– Compose Multiplatformの環境が整ってきたよ。
– いつものQiitaリーダ

元記事を表示

SwiftUI でデジタル時計のUIを実装してみる

SwiftUIの勉強がてらデジタルウォッチのUIを実装してみることにした。
チープな白黒液晶が懐かしくなり80〜90年代を席巻したカ⚪︎オ データバ⚪︎クなど所謂チープカシ⚪︎と呼ばれる腕時計のUIを参考に幾つかそのコンポーネントを再現することにした。

最終的にはそれをwatchOS上で動かせるようにしたいと思ったが、物理ボタンでの操作を想定したUIのはずなのでむずかしそう。
一種のアート作品として生暖かく見守っていただきたい。

# 📋 概要
どのようなアウトプットにすべきか考えたところ、懐かしいデジタルウォッチのUIコンポーネントを提供するレトロフューチャーなOSSにすることにした。需要はないだろうけど

現状のリポジトリは以下(まだPackage化は半端な状態)
https://github.com/JikeLab/DigitalClockKit

幾つか example として実装してみた画面はこの通り。
|||
|-|-|
|[SwiftUI]Buttonのタップと長押しで遷移先を変えたい

# はじめに
`Button`のタップと長押しの両方を共存させて処理を変えたいと思って試しに実装してみました。
開発時用の設定画面に遷移させたい、みたいなシーンで使えるかも?

# コード全文

サンプルコード

“`swift
import SwiftUI

struct ContentView: View {
@State var isLongPress = false
@State var isTap = false

var body: some View {
NavigationStack {
Button {
} label: {
Text(“押せ!!”)
}
.navigationDestination(isPresented: $isLongPress) {
SecondView()

元記事を表示

【SwiftUI】Chartsをまだ使ったことがなかったので株価アプリのUIっぽいの作って入門してみた3

# はじめに
この記事は前回の記事から続いています。
前回は株価をタップ&ドラッグした時のアクションを追加しました。

https://qiita.com/SNQ-2001/items/3b92fceb72721262a907

https://qiita.com/SNQ-2001/items/73132bf3cdbd4b8bb60b

今回はタップした時の上の株価を表示させる&タップしている株価の位置にsymbolを置くの2つをやってみます。

# 実際の株価アプリ
![RPReplay_Final1702894460.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/123885f4-83b9-6457-2ae0-83656fc83966.gif)

# 作成したサンプルアプリ
![Simulator Screen Recording – iPhone 15 Pro – 2023-12-19 at 13.54.20.gif](https://qiita-image-store.s3.ap

元記事を表示

Swiftのアクセス装飾子について理解する

# アクセス装飾子とは?
Swiftではアクセス装飾子を利用することができます。
装飾子を使用することにより、関数やクラスにアクセス制限を設けることができ、スコープ(使用する範囲)を明確にして定義することができます。
# アクセス装飾子の種類
### open
– 同じモジュール内だけでなく、別のモジュールからでもアクセスが可能
– 継承またはオーバーライドができる

:::note info
モジュールとは
importして読み込んで利用するFrameworkを作成するための仕組み。
:::

### public

– 同じモジュール内だけでなく、別のモジュールからでもアクセスが可能
– 継承やオーバーライドが不可能

### internal
– 同じモジュール内からのみアクセスできる
### fileprivate

– 同じファイル内からのアクセスのみ許可されている。

### private

– 装飾子を設けたそのクラスまたは構造体の中でのみアクセス可能(extension内でもアクセス可能)
– 一番制約の厳しい装飾子

:::note info
装飾子を何も付けなけ

元記事を表示

OTHERカテゴリの最新記事