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

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

「ゆめみ大技林 ’22」ができるまで

今年9月に開催された[技術書典13](https://techbookfest.org/event/tbf13)で、ゆめみの有志メンバーで「[ゆめみ大技林 ’22](https://techbookfest.org/product/9g7iLPz8dzmL2QrrbedbxG)」を出展しました。どのように取り組んだのかを改めて振り返ってみます。

なお、「ゆめみ大技林 ’22」は電子版と紙書籍版を無料で配布しました。電子版は現在も引き続き無料で配布しておりますので、ぜひご覧ください。

# 技術同人誌と技術書典

同人誌のなかでもとくに技術に特化した、技術同人誌と呼ばれるジャンルがあります。このジャンルが確立されたのは、2016年に始まった[技術書典](https://techbookfest.org)からです。技術書典以前にも技術系の同人誌はありましたが、技術同人誌に特化した同人誌即売会である技術書典の開催によってメジャーになりました。

技術書典の「よくある質問」ページの項目「[技術書とはなんですか?](https://techbookfest.zendesk.com/hc/ja/

元記事を表示

実務で出会った例から防衛的・攻撃的・契約的プログラミングについて考えてみた

# はじめに
早速ですが、みなさんは以下の仕様を実現するためにどのように実装しますか?少し考えてみてください。

**仕様**
– 無課金で半年以上継続しているユーザーは10%off、課金で3ヶ月以上継続しているユーザーは5%offのキャンペーンをします
– キャンペーンの画面はメイン画面から購入の際に遷移します
– 5%offと10%offで同一画面ですが表示される文言が異なります
– ユーザーの判断にはAPIで受け取ったCampaignTypeをもとに判断します
– CampaignTypeは3種類あり、起動時に取得・保持しています
– ineligible
– nomalDiscount
– largeDiscount

## 考えるポイント
**1. レスポンスの扱い方**
レスポンスはjsonでStrin

元記事を表示

姿勢推定の精度をval2017で評価しつつiOSでの動作を試していく

業務で姿勢推定の利用を考えたときに精度の影響を調べるタスクが出ました。
姿勢推定でよく使われている指標には、COCO test-devだとmAP、MPIIのPCKHが指標としてよく用いられています。
MPIIはご存知の方も多いですがもう何年も前からPCKHが90%を超えて飽和状態です。
COCOについては2016年のCOCO Challengeで60.5から2017年には72.1と急速に伸びた後はゆっくり上昇しており、2022年12月の現在は[ViTPose](https://github.com/ViTAE-Transformer/ViTPose)が81.1でSOTA(State Of The Art)となっている状況です。

公開されている数値だけではモバイル用にコンバートした時の精度(数値の変化、基本的に下がる)を測ることができません。
MPIIは用途によっては重要ですが、今回はPCKHはそこまで重要視していないこともあり、お手軽に試せるCOCO val2017を使って評価していくことにしました。

## この記事を読む前に必要そうな知識

この記事では主に、[OpenPose]

元記事を表示

スマホアプリのUIデザイン指示書のすゝめ

:::note info
この記事は [ZOZO Advent Calendar 2022](https://qiita.com/advent-calendar/2022/zozo) のカレンダー4の5日目です。
:::

# はじめに

こんにちは、今年の4月にZOZOに中途入社した@inokinnです。

会社やチームといった環境によって仕事の進め方は千差万別ですが、デザイナーさんからエンジニア向けのデザイン指示のやり方も例外ではなく、手法は多数あるかと思います。
本記事では、これまでの私のスマホアプリの開発経験から、実装する側から見たデザイン指定について分かりやすく、議論や実装を進めやすいと感じたやり方について本記事にて紹介していきます。
ここで挙げる内容はデザイナーだけではなく、エンジニアや企画も含めて案件の進め方として検討すべきことだと思っています。

人によっては「そんなの当たり前じゃん」と感じるような内容も多く含まれるかもしれませんが、お付き合いいただけると幸いです!

# 1. アプリ内で利用するカラーがすべて定義され、命名されているとうれしい

私が担当したとある新規

元記事を表示

iOSエンジニアに転職して半年経ったので感想を書く

# はじめに
この記事はこれからエンジニアに転職を考えている方やプログラミングって難しいやろ?って思っている方に向けて、一人でも多くのエンジニアに転職を考えている方々の力になればと思います

# 学歴・職歴
私の紹介を簡単に

私の最終学歴は高校卒です!部活は中学校からバスケをしてました。

2012~2021 エンジニア
2021~2022現在 転職してiOSエンジニア

2012からはメーカーに入社して、AGV(自動搬送機)の設計から製作〜納品までを担当しておりました。
業務内容は、ざっくり

仕様打ち合わせ 

制御盤設計

電気回路設計

ソフト設計(PLC)

制御盤配線

動作確認

納品

動作確認

こんな感じです。

後静岡と大阪にも仕事の都合で住んでました。
今は東京ですが、関西の方が楽しいですね。元々広島で生まれたのもあって関西の雰囲気の方が好きです。将来は京都で暮らしたいと思ってます。
2012~2015 静岡事業所勤務
2015~2020 大阪事業所勤務
2020~2021 静岡事業所勤務

前職ではPLCのラダープログラムは触っておりました。

元記事を表示

【SwiftUI】AlamofireをCombineで使ってみた

# はじめに
https://qiita.com/SNQ-2001/items/7dba99cc69d4b85e108b

以前はCombineでURLSessionを使って通信をしてみました。
今回はCombineでAlamofireを使って通信してみます。

# サンプルアプリ
![Simulator Screen Recording – iPhone 14 Pro – 2022-11-21 at 20.36.34.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/94d5d19d-4305-4d0b-452d-b37cb2f77ddc.gif)

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

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

元記事を表示

[SwiftUI + Core Bluetooth]ソニーの IoT 機器「MESH」と iOS アプリを接続する

## 記事の概要
– ソニーが開発、販売している IoT 機器 「MESH」 と iOS アプリを接続する
![スクリーンショット 2022-12-04 15.25.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199441/7dbef5fc-611b-5a47-465e-8f7218c9f0ae.png)

## 今回の開発環境
### PC

|項目|内容|備考|
|—|—|—|
|PC|MacBook Air M1 (2020) メモリ:16GB ストレージ:1TB
macOS Ventura(ver 13.0)||
|iPhone|iPhone SE(2nd) iOS 16.1||
|IDE|Xcode ver 14.1||

### MESH
今回は 「ボタン」 を使用した

https://meshprj.com/jp/products/blocks/MESH-100BU.html

## アプリの内容
– MESH の 「ボタン」 を押すと、iOS アプリの画面

元記事を表示

【WidgetKit】ウィジェットの編集項目をカスタムする方法

フリューAdvent Calendar 2022の4日目を担当します、f_nksksです。
今回はSwiftUIのWidgetKitについて、ウィジェットの編集画面をカスタムする方法について記事にしていこうと思います。
よろしくお願いします。

# やりたいこと
– ウィジェットを長押し→ウィジェットの編集ができる
– ウィジェット編集画面で、任意の項目を選択できる
– 項目選択した後、その項目に属する追加の設定項目が出現する
![画面収録_2022-12-04.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957449/63ebdcc1-8cad-b9a4-9fc7-9fa3e11dda04.gif)

※設定内容のウィジェット側への反映や、アプリ側で設定したデータの連携などは、また別途Qiitaの記事に書く予定なので、一旦ウィジェット編集画面が動くようになっていればOKとします。

# 前提
– プロジェクト作成済
– Widget Extentionをターゲットに追加済みで、ウィジェットが

元記事を表示

SpriteKitで2D横スクロールゲームをつくろう(その3)

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

## はじめに
[前回](https://qiita.com/am10/items/d53d1cdf1b973a9f56cc)の続きです。

今回はついに横スクロールさせます。

## 実装
横スクロールを実現するためにはいくつか方法があるかと思いますが今回はカメラをプレイヤーに追従させて横スクロールします!

こんな感じの構成(背景は固定にしてます)。

camera

シーン上にカメラ、床、プレイヤーをのせ、カメラの上に背景をのせてプレイヤーの位置に合わせてカメ

元記事を表示

アクセシビリティに配慮したモバイルアプリの作り方(開発視点)

# 初めに

**アクセシビリティは開発で無視されがち**ですが、やり方がわかれば、アクセシビリティに配慮するのはそこまで難しいことではありません。

この記事ではアクセシビリティに配慮したアプリの作り方を例を交えながら説明します。

# アクセシビリティに関して

## アクセシビリティの定義

この記事で言うアクセシビリティに配慮するというのは、**スクリーンリーダー(TalkBack / VoiceOver)による読み上げと操作**に対応することを指します。

正確に言えば、認識しやすい色の使い方や小さすぎない文字サイズなどもアクセシビリティに含まれますが、デザインに関わる部分はここでは取り上げません。

## アクセシビリティの基本原則

### 1. 説明の文字がないかつ意味を持つ要素に対しては説明ラベルを指定する

説明の文字がないですが、その要素自体は意味を持つ場合は説明ラベル

– Android: contentDescription
– iOS: label / accessibilityLabel

を指定すべきです。

注意する必要があるのは、要素自体が意味を

元記事を表示

MacOSX の環境にて iOS アプリを Flutter で開発する前段階のお話

本投稿は [テクノロジー検証 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/technology_validation) の 4日目として投稿しています。

はじめに :

テクニカルサポート業務に就いている nk-nara と申します。
1日目も見ていただいていれば、お気づきかもしれませんが、もう一人の中野となります。

本記事から数回は、Flutter って何だろねというところから始め、
環境作る時点から悩みつつ、簡単なアプリ実装していく記事を書いていければと考えております。

前提

私自身は、MS 系の Power Platform 一部 (※2) や
Javascript を独学で遊んだ程度の知識レベルとなります。

アプリ開発の経験値がない状態からスタートしています。

未学習や同様のスキルセットの者による
感想や意見などからしか得られない栄養素が投稿できれば良いな、と考える次第です。

Flutter について :

Flutter は、オープンソースのアプリ開発の環

元記事を表示

Macを使わずWindowsだけでiOSアプリをデバッグする方法(.NET MAUI)

# はじめに
VisualStudioと.NET MAUIを使うとMac無しでiOSアプリをデバッグすることが簡単にできるようになりました。
今回はその方法についてご紹介します。

# WindowsだけでiOSアプリがデバッグできるようになる利点
1.デバッグの際わざわざMacを引っ張り出してこなくてもよくなる
2.Macを買わなくても済む
3.Windowsの便利ツールを生かした環境でそのままアプリの開発からデバッグまでできる。PowerToysはいいぞおじさん「PowerToysはいいぞ~」

# 必要なもの
1.AppleDeveloperProgramに登録・・・AppleDeveloperProgramに登録しないとiOSデバイスのデバッグはできません。(どうせアプリをストアに出すのにAppleDeveloperProgramは必要だからこの機会にでも登録しなさい。(年額13000円程度))
2.iPhoneやiPadなどのiOSデバイス・・・これがないと始まりませんね。VisualStudio内のiOSエミュレーターでのデバッグはMacを別途必要とします。
3.iClou

元記事を表示

【Swift】戻り値を使用しない場合の警告を出さないようにする

# はじめに
コードレビューをしている時に見たことないアノテーションがあったので調べてみました。
どうやら、`@discardableResult`これは戻り値を使用していない場合に警告を出さないようにするものらしいです。

# 通常
通常は戻り値がある場合に戻り値を使用しないと警告が表示されます。
![スクリーンショット 2022-12-03 20.59.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/7e89217f-8f80-14fb-798f-3567ff97ee6f.png)

# @ discardableResultを使用
警告が消えました。
![スクリーンショット 2022-12-03 21.00.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/8f9e7171-e753-235b-c939-a38976acb78c.png)

# おわり
これはあまり使い道が分か

元記事を表示

complitionハンドラーについて(自分なりの解釈で)なまら簡単にまとめてみた

## はじめに
complitionハンドラーについて多くの記事や書籍を漁ってみたがどうにもイメージが掴みづらい。そのため、実務を約一年踏んだワイの解釈ではあるがものすごくざっくりとしたイメージを記事にまとめる(間違えていたらごめん)。

## 対象者
この記事は下記のような人を対象にしている。

– プログラミング初学者
– complitionハンドラーという言葉を知っている人
– 非同期処理について(ほんの少しでも)知識がある人

## complitionハンドラーについて
– 非同期処理では、リクエストを送る実行をしても望んでいるタイミングでレスポンスが返ってこないみたいなことがある。その望んでいるタイミングでレスポンスを受け取るために使うのがcomplitionハンドラーだと考える。
– 要は、complitionハンドラーを使って良きタイミングで確実に実行したい処理(レスポンス)をしましょうね、みたいなイメージ。 (これを俗に言う”コールバック”という)
– 基本的にはクロージャーの引数にcomplitionハンドラーを定義する。
– また引数に非同期処理

元記事を表示

SwiftUIで選択中のタブにViewをプッシュ表示する

[qnote Advent Calendar 2022](https://qiita.com/advent-calendar/2022/qnote) の3日目です。

iOS 16が登場しそろそろSwiftUIでの開発が行われる現場も増えてきたのではないでしょうか?
弊社ではFlutterでの開発案件があったのでFlutterの今後の動向も気になっています。

昨今のアプリでは大体下部にタブがあるものが多いと思います。今回プッシュ通知やスキーム、音楽系のプレイヤーの常駐しているView等の通常の遷移以外の画面や動作から選択中のタブでアプリのコンテンツ詳細画面を開く機能を実装するにあたり、Swiftに比べるとSwiftUIでの実装情報はまだまだ多くないのでどう実装するのが良いか迷うかと思います。

少し考えて出てきた案としては
1. 画面毎にNotificationCenterを登録して画面が表示中で通知を受け取った場合にNavigationLinkを有効にする
2. UINavigationControllerをどうにかして取得してそこにプッシュする

1の案は画面毎に通知と

元記事を表示

SpriteKitで2D横スクロールゲームをつくろう(その2)

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

## はじめに
[前回](https://qiita.com/am10/private/df42c1f0091e6c4705e2)の続きです。

今回はステージを作っていきます。

## 素材準備
背景(ちょっと適切なサイズがわからない。。。)

![background](https://user-images.githubusercontent.com/34936885/205078912-82c2dec2-d2c3-4c57-a23c-2fb45f3add58.jpg)

床ブロック

![tile_block](https://user-images.githubusercontent.com/34936885/205078848-2c4bdc61-dbc9-45f1-b961-48d475d72677.jpg)

#

元記事を表示

iOSでESP32のファームウェアをBLE経由で更新する

## はじめに
この記事は[N・S高等学校 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/n-s-highschool)の3日目です。
N高生です。今回はiOSでESP32のファームウェアをBLE経由で更新してみたいと思います。

リポジトリ: /* TODO */

## 環境
– MacOS12.5.1(モントレー)
– Xcode13.3
– ArduinoIDE2.0
– ボードマネージャー: esp32 v1.0.6
– iPhoneX (iOS15.5)
– ESP32 DevKitC_V4

※CoreBluetoothを扱うのでSimulatorでは動きません。

## 本題

以下の手順でファームウェアを送信、更新をしていきたいと思います。
![ble](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437056/a9b880ac-90e0-a7f6-32bf-d2fed22e9a33.png)

とりあえずファ

元記事を表示

【SwiftUI】ATTの許可率を上げる方法

# はじめに
まず、こちらの記事を見てみてください。
[Appleのアプリのトラッキングの透明性でiOS開発者の収益が15%〜20%減](https://iphone-mania.jp/news-382414/)

これはかなり重大な問題です。

iOS14.5からAdMobで全画面広告(リワード広告やインタースティシャル広告)を表示する際はトラッキング許可ダイアログ(以下、ATT)の表示が必須になりました。
ユーザーが許可するか拒否するかで広告収益がかなり変わってきます。
なるべく許可してもらいたいですよね

今回はちょっとの手間で1%許可率を上げることができたので方法を紹介しようと思います。

# トラッキングの許可のリクエストについて
https://developer.apple.com/jp/app-store/user-privacy-and-data-use/

# どのくらい収益が変わるか
アプリによっても異なるのですが、このくらいの差がありました。
![スクリーンショット 2022-12-02 13.04.12.png](https://qiita-image-sto

元記事を表示

React Nativeを利用したアプリ開発でライブラリのライセンスをJSXで表示したい

# モチベーション

React Nativeを利用した開発で利用しているライブラリをAndroid, iOSごとにjson形式でまとめて、React NativeのViewから表示させたい。この仕組みを、できるところは自動化をさせたい。その手順や躓きポイントをまとめた。

### この記事について

[Unipos Advent Calendar 2022](https://qiita.com/advent-calendar/2022/unipos)の2日目の記事です。

## 用意するもの

### ライセンス出力で利用
– [react-native-oss-license](https://github.com/k-tomoyasu/react-native-oss-license)
– [LicensePlist](https://github.com/mono0926/LicensePlist)
– [LicenseToolsPlugin](https://github.com/cookpad/LicenseToolsPlugin)

※LicenseToolsPlugin

元記事を表示

SpriteKitで2D横スクロールゲームをつくろう(その1)

![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 を使って 2D 横スクロールゲームをつくってみます。なぜ Unity を使わないんだ?と疑問を持つ方もいるかもしれませんがとくに意味はありません。なんか面白そうなので SpriteKit を使ってみます。

記事は3つくらいになる予定です(たぶん)。

今回は歩いたり跳ねたりするプレイヤーを実装していきます。

## 素材準備
クリスマスも近いのでチキンをプレイヤーにします:chicken:

歩き用

| c1 | c2 |
| — | — |
|![c1](https://user-images.githubusercontent.com/34936885/204984008-4f64e2c6-1727-4ac1-bb35-6042986234e9.png)|![c2](http

元記事を表示

OTHERカテゴリの最新記事