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

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

アプリ開発着手からリリースまでにやっておきたいこと10選

メリークリスマス?
こちらは [GLOBIS Advent Calendar 2019](https://qiita.com/advent-calendar/2019/globis) 25日目の記事です。

# 自己紹介
こんにちは、@mshrwtnbです。1ヶ月ほど前にGLOBISに入社し、現在、[GLOBIS学び放題](https://hodai.globis.co.jp/)のアプリ開発を担当しています。iOS版GLOBIS学び放題を使いやすくすべく、チームメンバーとともにゴリゴリ書き直しています。ご期待ください?
直近まではソシャゲを主力とする企業で、複数サービスのアプリ開発、マネジメントをしておりました。

# 記事の目的
これまでのアプリ開発・運用の経験をもとに、**アプリ開発着手からリリースまでにやっておくと後々役立つこと**をご紹介します。想定読者は**サービス運用の経験が少ないアプリエンジニア[^1]**とします(経験を積まれている方に既視感強めの内容かと思います)。チョイスは独断と偏見です。他にやっておくと、便利そうなことがあればコメントいただけると幸いです。

元記事を表示

[速報] [iOS] UIWebViewからWKWebViewへの移行期限が決まった件

この記事の続報です。
[[iOS] UIWebViewがいよいよヤバいらしい(”ITMS-90809: Deprecated API Usage”メールが届いた件)](https://qiita.com/y-some/items/1f9baeedd160f2d0fcbb)

**2020年4月から、新規のApp Store申請時にUIWebViewが含まれると、リジェクトされる模様です。**
**アップデート申請は2020年12月です。**

ソース:
Apple Developer News and Updates
https://developer.apple.com/news/?id=12232019b

元記事を表示

アプリのアイコンを作成する方法:ルールと方法

モバイルアプリケーションの開発は、チャンスの宝庫です。 2020年までに、この事業分野の収益は1,890億ドルを超えると予想されています。 平均的なスマートフォン所有者がデバイスで月に約30種類のアプリを起動するので、それは理にかなっています。 Apple App Storeには220万個、Google Playには280万個のアプリがあります。 何という選択であり、同時に、何と激しい競争でしょう。
## 良いモバイルアプリアイコンが必要な理由とは?
ブラウジング中にアプリを試す理由は何ですしょうか? それはアイコンです。 これは、アプリページを開くという一瞬の決定を促すメインドライブです。 アプリのアイコンはユーザーの関心を呼び起こし、モバイルアプリが信頼できるものであり、インストールする価値があるとユーザーに確信させる必要があります。

![image4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249438/532dc0e1-bd24-c500-15cc-5607f9f3aea9.png)

元記事を表示

shortcuts,使ってますか?

# はじめに
この記事は東京高専プロコンゼミAdventCalendar② 24日目 の記事です.
①https://adventar.org/calendars/4321/
②https://adventar.org/calendars/4322/

すでに日本では25日になっていますが,僕はハワイ在住なのでセーフです().

# 作るもの
今回は,前々から使いたかったiOS shortcutsのssh機能を使ってraspberry piに計算をさせる何かを作りました.

# shortcutsとは?
![Apple-Shortcuts-v2-logo-icon.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547432/d53056eb-0642-83ff-46eb-5fb75d0f2c86.jpeg)
>https://support.apple.com/ja-jp/guide/shortcuts/welcome/ios
ショートカットは、Appでの1つまたは複数の作業をすばやく完了するための機能

元記事を表示

UICollectionViewCompositionalLayout & DiffableDataSourceを利用したUIとCombineを利用したMVVMパターンでのAPI通信関連処理との組み合わせた実装の紹介とまとめ

## 1. はじめに

皆様お疲れ様です。「iOS Advent Calendar」の24日目を担当させて頂きます、fumiyasac(Fumiya Sakai)と申します。何卒よろしくお願い致します。

まずは僕自身の今年のトピックスとしては、技術書典5で頒布した書籍の商業化・業務では新たな現場での新規iOSアプリ開発を通じてRxSwift・Laravel・Nuxt.jsに触れる機会・新たな書籍の執筆&技術系同人誌イベントの参加・iOSDCからリジェクトコンでの2日連続での登壇…等々と昨年以上に変化とバラエティに富んだ1年ではありましたが、何とか楽しく過ごせておりました。

また今年のWWDC19では、[WWDC19で押さえておきたいと思ったセッション10選](https://medium.com/mixi-developers/wwdc19-10-sessions-a1ba238166f)でもまとめられているように、SwiftUIをはじめとして様々な新機能が紹介されたこともありキャッチアップしたいトピックがたくさんありました。

今回はその中でも僕が特に気になった、

+ __

元記事を表示

MusicFMを潰したい高校生の話。〜動的解析でわかったこと〜

##あらすじ
クラスでこんな会話をよく耳にします。

「〇〇の新曲リリースされたらしいよ」
「まじ?MusicFMにあるかな」
「通信制限やばいからwifiつないでダウンロードしとこ」

MusicFMやmangabankなどの海賊版サービスは、もはや中高生の生活に必要不可欠です。ネット上ではここまで著作物がルーズなのかと高校生ながら危機感を感じました。僕が大好きなMr.childrenやスピッツの楽曲もダダ漏れ。
よし、MusicFMを潰そう。

##動作環境
iPhone8 ios12.1
App名: Music HD デベロッパ: Xu Yingqi
Ubuntu 18.04.3

##iPhoneの通信をパケットキャプチャ
iPhoneの通信をPCでキャプチャするには、iPhoneネットワークデバイスを仮想ネットワークインターフェースとしてPCに設定します。

rvictlコマンドをlinuxで実装してくれるツールを発見したので今回はこれを使います。
rvi_capture.py: https://github.com/gh2o/rvi_capture

Wiresharkも一

元記事を表示

NICTが作ったつよつよな翻訳APIとiOS標準の音声文字起こしSDKを組み合わせて翻訳アプリを作ってみた

## TexTra API
情報通信研究機構(NICT)が提供するAPIです。
日本人が使うことに特化しており、高い翻訳性能を誇ります。
スクリーンショット 2019-12-25 0.35.57.png
試しにフォームで使ってみるとこんな感じ。
逆翻訳してみると、Google翻訳にあったようなトンチンカンっぷりは少なく感じます。
スクリーンショット 2019-12-25 0.37.08.png
ポケトークも高いですし、スマホでこれ使えるようにした

元記事を表示

Awesome CoreNFC in iOS 【iPhone でピッと IC カードを読む】

# はじめに
CoreNFC は、iPhone でピッと IC カードを読みこめる機能です。

利用できるICカードは幅広く、交通系IC、各種電子マネー、大学生協の電子マネー、運転免許証、パスポート、マイナンバーカードなどあります。

今年9月19日に利用可能になった CoreNFC はまだ日本語の学習記事があまりありません。この記事では、CoreNFC を日本の開発者にもっと活用して頂く目的で、情報をまとめさせて頂きます。将来的に初学者に良いまとめになれば幸いです。

改善コメントや編集リクエストをどんどん募集しております。どうぞよろしくお願い申し上げます?‍♂️

# キータ
– [NFCの種類(type A, B, F)](https://qiita.com/treastrain/items/dca0c8d328bb71625c6c)
– [交通系ICの残高読み取り](https://qiita.com/treastrain/items/d54ef2c2abbcd40fb9f1)
– [運転免許証](https://qiita.com/treastrain/items/9025

元記事を表示

Apple pencilとiPadでとった「手書きメモ」が自動でブログになる勉強方法が捗りすぎるので方法を公開します ( Evernote postach.io )

# 勉強でとったメモがそのままブログに!!

**東京グルメ紀行**
https://qiita.postach.io/

この記事と全く同じ内容+お絵かき入りのブログ

https://qiita.postach.io/post/ipaddetotuta-shou-shu-kimemo-gazi-dong-deburoguninarumian-qiang-fang-fa-gabu-risugirunodeyarifang-wojiao-emasu-evernote-postach-io

このブログのように、evernoteでとった手書きメモやお絵かき入りのノートを直接いい感じのブログにできます。

iPadと Apple pencilがあれば、簡単な表も手書きでパッと書いて公開できるので、**アルゴリズムの解説記事はevernoteで書いて公開した方が楽です。**
(Qiitaはお絵かきが挿入できないのがだるい)

# 手順(全部無料です)

* Evernoteをインストール

Evernoteはテキストと手書きメモでノートを取れるアプリです。
使い方はググってください

* p

元記事を表示

【iOS】算数で横スクロールのCollectionViewの高さを求める

# スクローラブルと認識できるデザイン
まず初めに、iOSに限らずですがスクロール可能と認識できるデザインがあります。

![Blank Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550291/749533cb-de34-7410-0312-83f3abde7c5e.png)

こんな感じです。2つのセルが完全に表示されていて、残り1つは半分ほど出ているデザインです。
これはユーザーが見た時に「あ、横にスクロールできるんだな」と直感的に思わせるためですね。

これをみた時にCollectionViewの高さとセルのサイズってどうするんだろうと思ってました :thinking:
よく考えてみるとある程度条件を絞って算数の力を使えば導き出せることに気づいたので実装してみます(正確には中学生で習う1次方程式ですが、ほぼ算数なので許してください)。

# 計算してみる
まずは手元で計算してみます。
条件を整理して実際に数式を出すところまでやります。

## 条件の整理
今回は事前に計算

元記事を表示

Apple Developer Program の管理者が最低限意識すべきこと

受託開発企業の `Apple Developer Program` の管理者として一年間仕事をしてきたので、
最低限これだけは意識しておいたほうが良いと思ったことをまとめます。

受託開発企業というところもあり、ある程度領域が狭まってしまっていることもあるかと思いますので、ご了承ください。

# プログラムの種類

### Apple Developer Program (ADP)
開発及びAppStoreでの配布で利用する
AppStore配布が出来る
Ad Hoc配布が出来る
カスタムB2B配布が出来る
TestFlight(テスト配布)が利用出来る

### Apple Developer Enterprise Program (ADEP)
開発及びIn-Houseでの配布で利用する
Ad Hoc配布が出来る
In-House配布が出来る

# 配布方法

### AppStore 配布

– AppStoreを利用した最も一般的な配布方法
– ADPでしか使えない
– 配布前に審査に出す必要がある

### Ad Hoc 配布

– App Storeを利用しない配布方法

元記事を表示

Bitriseで2FA認証後に複数アカウントのSandboxユーザーを扱う上で気をつけること

## Bitriseの2FA
BitriseではAppleIDに2FA(二段階認証)がかかっていたとしても[App Store Connect 2FA solved on Bitrise](https://blog.bitrise.io/app-store-connect-2fa-solved-on-bitrise)のように設定をすることで、セッションが有効な30日間は2FAをスキップすることが可能です。

ただ以下のようなSandboxユーザーを扱うケースでハマりました。

## ハマったこと

以下2つのアカウントがあるとします。

**2FAの設定をしていない**AppleID: `apple_id_not_2fa@test.com`
2FAの設定をしているAppleID: `apple_id_2fa@test.com`

**Bitrise上で紐付いているアカウントは`apple_id_2fa@test.com`とします。**

以下のような、2つのアカウントのSandboxユーザーを削除するfastlane actionを実行します。

“`rb
# Fastfile
r

元記事を表示

8ヶ月かけてTODOアプリを作った話

#はじめに
今年の4月頃から開発していたTODOアプリが完成したのでリリースした。
今回はなぜアプリの開発に8ヶ月もかかってしまったのかを自戒も含めて公開したいと思う。

#どんなアプリ
リリースしたアプリはこちら
https://apps.apple.com/us/app/tickettask/id1491648458?l=ja&ls=1

####使用技術
開発にあたって使用した技術は以下
・Swift
・Xcode
・Firebase(Analytics集計のため)
・Realm

####アプリ概要
アプリの概要としては、根幹としてはよくあるTODOアプリ。
それ以外に設定した期間でのリセット機能、定期的なリマインド機能などがある。

ここまで見ていただいて、ある程度のアプリ開発の経験がある人はこう思ったんじゃないでしょうか。

**「ん?これくらいの用件のアプリだったら8ヶ月もかからなくないか?下手したら1ヶ月で作れるくらいの規模じゃないか?」**

はい。こういったご意見も含めてなぜこんなに期間がかかってしまったのかを書いていく。

#開発した経緯
まずなぜこのアプリ

元記事を表示

iPhoneでの現在Apple Storeに公開されている一覧+ 今後の展望とか

長い長いカレンダーになりましたが終盤戦ということで、もう少しお付き合いいただければと思います。

今回の記事では、**現在自分が確認できている(2019/12/20現在)**でType-Bの読み取りを行っているアプリケーションの紹介をしたいと思います。

ぶっちゃけ、自分は仕事以外でmac関連を触っていない。そもそも触って数か月くらいしか…ということもあるので、**開発を試したい**。ないしは開発したくないけど**とりあえず触ってみたい**層向けです。触ってみたくなりましたら[このカレンダー](https://qiita.com/advent-calendar/2019/corenfc)を見ていただければばと思います。

ちなみに筆者はFelicaには詳しくないのでType-Bばかり触っていますのであしからず…

## Japan NFC Reader

URL: https://apps.apple.com/jp/app/id1480265213
作成者: Ryoga Tanaka氏(treastrain)

カレンダーを見たことある人はわかると思いますが、Core NFC

Bitriseからアプリをチームにテスト配布するための設定

この記事はBitriseアドベントカレンダーの23日目の記事です。

どうも!ハムカツおじさんという名前でtwitterやってます([@hmktsu](https://twitter.com/hmktsu))?
自分でだったり弊社でだったりなどでBitriseを使ってサービスをビルドしています。

ちなみに先日Bitrise User Group Meetup #3にて以下のスライドを発表させていただいたので、興味ある人はご覧になってください!
[XcodeやAndroid Studioを弄らないアイコン管理](https://speakerdeck.com/watanabeyu/xcodeyaandroid-studiowonong-ranaiaikonguan-li)

## はじめに
Bitriseはアプリ開発をするにあたって外せないサービスになっていると思っています。
対抗馬としてCircleCIなどの他サービスもありますが、iOSやAndroidのビルドをするためにブラウザ上でぽちぽちするだけでworkflowを組め、さらにはBetaみたいにBitriseを使ってのAdhoc

SwiftUIを簡易的にUserDefaultsを使う方法

# はじめに
SwiftUIでViewModelを使ったUserDefaultsを使う方法はよく見かけるのですが、簡易的にUserDefaultsを使う方法がありましたので紹介します。
あくまでの簡易的な使い方です。

# 今回のサンプルコード
TextFieldに文字入力が終わるとTextに入力した結果が表示されます。
今回は、文字入力が終わったタイミングでUserDefaultsに保持して、アプリ起動時にUserDefaultsから読み出します。

1.png 2.png[Swift]GitHub検索プログラムをprotocol, associatedTypesで改良する

先日、Swiftの基本的な内容を記した本「改訂新版 Swift実践入門(石川洋資・西山勇世、技術評論社、2018)」に従って、GitHubのリポジトリの検索プログラムを実装しました。

GitHub検索用APIには豊富な検索オプションが用意されているのですが、この本ではユーザーとリポジトリの検索のみ記載されていたのでとりあえずそれに従って実装しました。

検索結果を表すために、ジェネリクスを利用したSearchResponse構造体を実装しています。

“`swift:SearchResponse.swift
struct SearchResponse: Decodable {
let totalCount: Int
let items: [Item]//構造体User, 構造体Repositoryを収められる

//中略
}
“`

この構造体は、`SearchRepositories`, `SearchUsers`という、APIへのリクエストを表す構造体にそれぞれassociatedTypesを用いて関連づけら

SwiftUIでTabBarを作る方法

# はじめに
SwiftUIでTabBarの作る方法を紹介します。
TIPSとして役立ててください。

# 今回の作るTabBar画面
`TabAView`と`TabBView`を作りそれをTabBarで画面を切り替えるSwiftUIを作ります。

TabA.png TabB.png

# 作り方

## TabAViewとTabBViewを作る
File>New>File…でSwiftUI Viewで`TabAview`と`TabBVie

RxSwiftをざっくりと理解する(1)基礎用語まとめ

##はじめに
[andfactory Advent Calendar 23日目](https://qiita.com/advent-calendar/2019/andfactory)の記事です!
RxSwiftの内容を初学者に向けてざっくりとまとめてみました。
第1回は基礎用語です。

##Observable
それを購読(≒監視)しているオブジェクトに処理されるデータを流すもの。
* Observableはelementを含むnextイベントを流すことができる。
* terminateイベント(error, completed)が流れるまで続く。
* Observableが停止するとイベントは流れなくなる。

##Subscribe
Observableを購読(≒監視)すること。
onNext,onError,onCompleted,onDisposedのタイミングで行いたい処理を登録することができる。
##Disposable
メモリリーク防止のために必要であれば購読を解除してくれるオブジェクト

“`swift

let observable = Observabl

クリスマスまでにSwiftUIでPinterest風のグリッドビューを作りたかったのだけれど…

Qiita Advent Calendar [iOS #2](https://qiita.com/advent-calendar/2019/ios-2) 最終日の記事です。

## :santa::christmas_tree::tada: Merry Christmas :santa::christmas_tree::tada:

今日はクリスマスですね!大人になってしまったので :santa: にプレゼント :gift: をもらう楽しみはなくなってしまいましたが、逆に子どもたちにプレゼントして喜んだ笑顔 🙂 を見るのが楽しみになりました。

さて、最近そのプレゼント選びを便利に、そして楽しくするためにアプリを個人的に作りはじめました。そのアプリのイメージとしては、(僕の大好きな)[Pinterest](https://www.pinterest.jp) のアプリのように、並んだ写真を眺めながら選んでいくようなものを考えています。

せっかく新しく作るアプリなので **SwiftUI** で開発することにしました。まずは一番重要になる Pinterest 風のグリッドビュ