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

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

SwiftUI, ObserverbleObjectをネストして更新通知させる場合(メモ)

##やりたいこと
SwiftUIでEnvironmentObjectを使っている時、ネストされたクラスの値が変更されたときにもViewを更新したい

“` swift:こういう場合
import Combine

//View
struct ContentView: View {
@EnvironmentObject var model:Model

}

//Model
class Model:ObservableObject{
@Published var value:Int = 0  //値の更新で、Viewが更新される

var child1 = Child1()
var child2 = Child2()
}

class Child1:ObservableObject{
@Published var value:Int = 0  //この値が更新された場合には、Viewには更新が伝わらない
}
class Child2:ObservableObject{
@Published var value:Int

元記事を表示

iPadとapple pencilで作る手書きブログ

# iPadでとった手書きメモがそのままブログに!!

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

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

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

# 手順

* Evernoteをインストール

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

* postach.ioに登録する

以下のリンクにアクセスし、登録します

https://postach.io

* postach.ioノートブック(登録したら勝手にできている)内にノートを作る。

このとき、publishedというタグを付けると公開されます。

# これで準備は完了です

postach.io

元記事を表示

SwiftUI Viewの動的サイズを取得するには(メモ)

#SwiftUIの動的に計算されているViewサイズの確認

##やりたいこと
デバッグ時など、以下のように領域いっぱいにサイズ指定をした場合に、どういう値になっているのかを取得するメモです。

“` swift
Text(“Hello”)
.frame(height:60)
.frame(minWidth: 0, maxWidth: .infinity)
.background(Color.red)
“`

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59249/67ba2183-b039-6e3a-b2d4-7071737cb82f.png)|
|:-:|

##GeometryReaderをView要素のbackgroundに使う
ポイントは戻り値に空のTextなど描画対象となるViewを指定することのようで、EmptyViewなどではだめでした。

“` swift

元記事を表示

【swift5】TableViewを使ってtodoリストを作成する

## 今回やること

swift5を使用してtodoリストを作成します。

## ソースとストーリーボード

こちらはストーリーボード

tableViewを置いてその上にtable cellを置いただけです。

スクリーンショット上ではわからない点としてはOutletsのdataSourceとdelegateをviewコントローラーを接続しています。

![スクリーンショット 2019-12-25 20.00.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270808/1eb812d0-75d9-71a7-d7e7-0a7bfecd0313.png)

こちらがviewControllerのソースです。

“`swift
import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

let todo = [“牛乳を買う”, “髪を切る”, “

元記事を表示

iOS13のダークモードを対応したくない皆さまへ

“` AppDelegate.swift
if #available(iOS 13.0, *) {
window?.overrideUserInterfaceStyle = .light
}
“`

これを書きましょう!

全体適用は ↑
`application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool`

画面ごとに切り替えたい場合は ↓
`viewDidLoad()`

“` UIViewController.swift
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = .light
}
“`

参考: https://stackoverflow.com/questions/56537855/is-it-possible-to-opt-out-of-dark-mode-on-ios-13

元記事を表示

XCode でファイルが認識されないとき

# イントロ

Finder またはファイルエクスプローラーで見るとファイルが確かに存在するのに、XCode を開いて見てみるとファイルが認識されない、ということがあります。

実は実際のファイルと XCode から見たプロジェクトのファイルは必ずしも一致しているわけではありません。つまり、実際のファイル構造と XCode から見たファイル構造を別々に管理することができるようになっています。よって、XCode の外部でファイルを移動などしたときは、それを XCode に認識させる作業が必要になります。

# 原因

XCode から見たファイル構造は、
MyProject.xcodeproj/project.pbxproj
というファイルによって管理されています。よって、このファイルに記されていないファイルは、実際に存在していたとしても XCode 内部からは見えないわけです。
したがって

– XCode 外部でプロジェクトにファイルを追加した場合
– .pbxproj ファイルを git でコミットし忘れた場合

などに、XCode でファイルが見れない状態になってしまいます。

元記事を表示

アプリ開発着手からリリースまでにやっておきたいこと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が使えなくなる最終期限が告知されました

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

**2020年4月から、新規のApp Store申請時にUIWebView APIが含まれていると、リジェクトされる模様です。**
**アップデート申請は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