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

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

ion-searchbarでcloseボタンのアクションをユーザフレンドリーにする方法

Ionic Frameworkを使っていると、 `ion-searchbar` を利用する場面も多いでしょう。多くのリストから絞り込む用途に使われることがほとんどなのですが、実際ユーザとして使っているとひとつの問題があります。それは、closeボタンを押下しても、 `ion-searchbar` にフォーカスされたままの状態になることです。

![49f09cc0f0d654254dcda801df5f32aa.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100460/b32ff1ba-d2cf-be8c-1bac-2e22a7d9ad41.gif)

closeボタンを押下しても、カーソルが残っていることがわかるかと思います。これは外部キーボードを利用している時は問題になりませんが、モバイルデバイスでオンスクリーンキーボードを利用してる時は問題になります。

__closeボタンを押下してもオンスクリーンキーボードは立ち上がったままです。__

もちろんこれにはシナリオが2つあります。

– 入力内

元記事を表示

Elixirの未来トーク2-1「全世界のスマホGPUをクラスタリング」研究開発を進めてわかったこと (Nxバックエンド勉強会#8)

[Nxバックエンド勉強会#8](https://pelemay.connpass.com/event/264838/)でお話しする内容のポジショントークです.

https://pelemay.connpass.com/event/264838/

シリーズ

* [Elixirの未来トーク1-1「ElixirChip:FPGA or HW化されたElixir」研究開発を進めてわかったこと (Nxバックエンド勉強会#8)](https://qiita.com/zacky1972/items/6e1debd04798b01f36be)

「全世界のスマホGPUをクラスタリング」というのは, @piacerex さんが言い出したことで,私のアイデアではありません.

元々はPelemay(ペレメイ)を開発したきっかけではあったのだけど,ElixirからGPUを駆動したいという要望が @piacerex さんから寄せられたのが2017年のこと.最初にそのアイデアをQiitaに書いたのが[「ZEAM開発ログv0.1.1 AI/MLを爆速にしたい! Flow / GenStage でGPUを駆

元記事を表示

個人開発Flutterアプリリリースまでの小話(iOS)

# はじめに
前回の記事にてFlutterを使って個人開発したアプリをリリースしたため軽くご紹介をさせていただきました。(https://qiita.com/Oyama-Kohei/items/7c4a6a7be226f0775bb2)
iOSのアプリリリースにはAppleの審査があり、基準がかなり厳しいため自分も苦労をしましたが今回の記事では、そんなiOSアプリリリースの苦労話やツールなどを紹介できればと思います!

# アプリができたら
まずはAppDevelopperProgramに参加しましょう!
これをしないとAppStoreに自分が作成したアプリを登録できない仕組みになっています。
こちらから → https://developer.apple.com/programs/
参加費用は年間で約100ドルです。。。高い。。
ただ自分は一通りリリースまでやってみることで得られた知識/経験は大きいものでした。
iOS開発をやっている方は一回でもいいのでやってみるといいかもしれません。

# AppStoreConnect
多くの方はTestFlightからアプリのテストを行なってい

元記事を表示

未経験からiOSエンジニアになって3ヶ月経ったので、振り返ってみたよ

## 概要
振り返ろうと思った理由は、大きく2つあります。
###### 1つ目は、単純に今まで何をしてきたのか言語化し思考整理をするためです。
自分的に、この3ヶ月は濃密すぎて時間が一瞬にして過ぎ去っていったので、改めてどんな行動をしていたのかを思い出すために振り返りを実施しました。

###### 2つ目は、前職で個人的に振り返りをしていなかったことを後悔したからです。
というのも、前職では全く振り返りをしておらず振り返らないということは、「振り返りをした時点で何がどこまでできて、逆に何ができないのか、また今後の自分の成長目標を適切に設定すべきか」を考えることを放棄していると気付き後悔したからです。

なお、今回は技術共有的なことは書きませんが、興味があればお読みいただきたいと思います。

## 成長したなと感じること
– 携わらせていただいているアプリ開発でそこそこ難易度が高い実装でも助言をもらいながら進めることができること。
– タスクを上手く捌き、無駄な時間を作らないようにできていること。
– アーキテクチャを意識したり、命名規則を意識してコードを書くことの重要性を理解しつつ

元記事を表示

getとsetって便利だねぇ

## 概要
プロジェクト内でAPIでUser型で取ってきた情報を取得してきて、ViewControllerのtableViewに表示するということをしました。ViewControllerに情報を反映させる前にUseCaseとPresenterにて、一時的にUser型の配列をバケツリレーのように参照してViewControllerに反映させました。その際に、getとsetを使ったので、復習を兼ねて調べようと思い記事にしてみました。

## 前提知識
getとsetを説明する前に、ストアドプロパティとコンピューテッドプロパティの違いについて知っておかなければなりません。
###### ストアドプロパティ
まず、ストアドプロパティとは、「変数や定数のように値を代入して保存するプロパティで、定義方法は、変数や定数と同様にvarキーワードやletキーワードを使用する。」と解説されています。
具体的に、コードに落とし込んでみると以下のようなもののことを指します。
“`StoredProperty.swift
/// ストアドプロパティ
var storedProperty = “StoredPr

元記事を表示

【SwiftUI】iOS16からTextFieldが複数行に対応してた

# はじめに
以前はTextFieldでの複数行の入力ができず、TextEditorを使用する必要がありました。
しかし、iOS16からTextFieldの複数行入力がサポートされたようなので使ってみました。

# 実装
“`swift
import SwiftUI

struct ContentView: View {
@State var text: String = “”
var body: some View {
TextField(“テキストフィールド”, text: $text, axis: .vertical)
.font(.system(size: 25))
.textFieldStyle(.roundedBorder)
.padding(.all)
}
}
“`
:::note info
**ポイント**
`axis`に`.vertical`を指定することで複数行入力ができるようになります。
:::

# 動画
![Simulator Screen Re

元記事を表示

RealityScan iOSアプリ版について

# はじめに
こちらはIwaken Lab. 主催のアドベントカレンダー5日目の記事になります。

https://iwakenlab.jp/

今回は、2022年の12月にリリースされたRealityScanについて紹介させてもらいます!

# RealityScanとは
Capturing Reality社が開発していた「RealityCapture」をスマホで体験できるようにしたアプリで、写真から3Dオブジェクトを生成する、フォトグラメトリーの技術をスマホで楽しむことができます。

現状(2022/12/04)、AppleStoreでのみアプリのダウンロードが可能です。

https://apps.apple.com/jp/app/realityscan/id1584832280

# RealityScanで作ったもの

詳細

– 撮影

元記事を表示

イニシャライザにBundleを渡せるView一覧(SwiftUI)

## はじめに

本記事は [SwiftUI Advent Calendar 2022](https://qiita.com/advent-calendar/2022/swiftui) の5日目の記事です。
昨日も私で [ForEachで値のほかにインデックスも使う方法(SwiftUI)](https://qiita.com/uhooi/items/180068e9b27e4b85fc9e) でした。

イニシャライザに `Bundle` を渡せるSwiftUIのViewを、一覧で紹介します。

私はSwift Packages内でリソースを管理することが多いので、 `bundle: .module` を渡せるViewの一覧があると便利だと思いました。

## 環境

– OS:macOS Ventura 13.0.1
– Xcode:14.1 (14B47b)
– Swift:5.7.1

## イニシャライザにBundleを渡せるView一覧

`Text` のように、イニシャライザに `Bundle` を渡せるViewを紹介します。
イニシャライザが複数ある場合、代表的なもののみ

元記事を表示

LocalizedStringKeyの簡単な説明(Swift)

## はじめに

本記事は [Swift Advent Calendar 2022](https://qiita.com/advent-calendar/2022/swift) の2日目の記事です。
昨日も私で [iOS 15.0+ではNSLocalizedStringよりString(localized:)を使おう(Swift)](https://qiita.com/uhooi/items/41ead3ad632dc911a4f9) でした。

`LocalizedStringKey` について簡単に説明します。

## 環境

– OS:macOS Ventura 13.0.1
– Xcode:14.1 (14B47b)
– Swift:5.7.1

## 「LocalizedStringKey」とは?

文字列ファイル内のエントリの検索に使うキーのことです。

https://developer.apple.com/documentation/swiftui/localizedstringkey

以下の文字列ファイルがある場合、 `LocalizedStringKey` に `

元記事を表示

Apple Developer Program のサイトで毎年行うデバイス削除の知識整理

# はじめに

Ad HocビルドのiOSアプリをiPhoneやiPadにインストールするには、事前にApple Developer ProgramにiPhoneやiPadのUDIDを登録しておく必要があります。
登録できるデバイスの台数には上限があり、登録済みデバイスを削除できるタイミングは年に一回しかありません。

今回はこの、年に一回のデバイス削除(※)について予備知識を整理します。年に一回しかやらないから、毎回忘れちゃいますしね。
※ 「デバイスリセット」「デバイスリストのリセット」などと呼ばれたりもするようです。

デバイス削除に関するApple公式の説明は下記に少しあります。
https://developer.apple.com/jp/support/account/

# 台数のカウントルール

登録できるデバイスの台数上限は、デバイスの種類毎に100台**ずつ**です。iPhoneとiPadは別枠でカウントされます。

登録済みのデバイスは、あとから無効化することもできますが、**無効化しても台数にカウントされ続けます。**
![図1.png](https://qii

元記事を表示

iOS 15.0+ではNSLocalizedStringよりString(localized:)を使おう(Swift)

## はじめに

本記事は [Swift Advent Calendar 2022](https://qiita.com/advent-calendar/2022/swift) の1日目の記事です。
遅くなりましたが、誰も埋めていなかったので埋めます。

ローカライズの文字列を取得する方法を紹介します。

## 環境

– OS:macOS Ventura 13.0.1
– Xcode:14.1 (14B47b)
– Swift:5.7.1

## 今まで: NSLocalizedStringを使う

ローカライズの文字列を取得するとき、今までは `NSLocalizedString(_:tableName:bundle:value:comment:)` を使っていました。

“`swift
func NSLocalizedString(
_ key: String,
tableName: String? = nil,
bundle: Bundle = Bundle.main,
value: String = “”,
comment: Stri

元記事を表示

「ゆめみ大技林 ’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

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

元記事を表示

OTHERカテゴリの最新記事