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

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

Flutterウィークリー #82

# Flutterウィークリーとは?
FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/

この記事は#82の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-82

※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。

# アナウンス

### Flutter Interact –日付を保存します
https://events.google.com/flutter-interact/


Flutterチームによる新しいイベント。今回はニューヨークで開催され、全世界に向けて生放送されます。

# 読み物&チュートリアル

### Over the Rainbow –カラーフィルター
https:/

元記事を表示

Go言語でiOS開発ツールを作成する:Localizable.stringsファイルからenumを生成する

# はじめに
 `Go言語でiOS開発ツールを作成する` というモチベーションは、まずGo言語が自分にとってとても興味深い言語であるいうところから始まっています。もともとLinux上でC言語を使って組込製品などを作ってきた人間にとっては、Go言語はすごく分かりやすくて便利な言語だという感触がありました。しかも高速(らしい)です。
 実は以前にSwiftでMacで動くiOS開発ツールは作った経験があるのですが、今回Go言語でチャレンジした感想は、Swiftに比べてもGo言語はとても優れているということです。(特にMacOSやLinuxで動くツールを作成する場合)

# 目標

“`:Localizable.strings

“clode_window” = “閉じる”;
“delete something” = “削除する”;
“cancel” = “キャンセル”;
“OK” = “OK”;
“_Only_this_” = “Only this”;
“`

例えば上記のような `Localizable.strings` から下記のようなswiftファイルを生成します。

“`swi

元記事を表示

【緊急周知】Xcode 11.2 使用注意!(Kozeさんブログより)

Koze さんのブログを参照ください。

[『Xcode 11.2 + Storyboard UITextView でクラッシュ』](http://koze.hatenablog.jp/entry/2019/11/03/220000)

付記:
話題になっていたのでそのうち直るかなと思っていましたが直らず、2019年11月4日現在、Xcode 11.2の次のベータ版ダウンロードも存在しないので、**初心者の開発者が困らないように周知の一助として投稿しました。**

うちでもひとつ前の古い実機環境でテストしてみたところ、起動時にクラッシュしました。
iOS 13.1( iPad Air 2 実機)
Xcode 11.2(Swift5 + UIkit + .storyboard + UITextView使用)
macOS 10.15.1

まったくおなじプロジェクト(ソースコード)を iOS 13.2 実機で実行してもなにも問題なく正常動作します。

記事にはない回避策としては「そのアプリの対象端末条件(ターゲット)を iOS 13.2 以降に限定する」というのもアリかもしれません。

元記事を表示

AutoLayout、バッティングが起きたとき、プライオリティは低いがバッティングの原因ではないものはどう扱われるのか

今回もAutoLayoutです。

A,B,C,D,Eの5つの荷物が入ったかばんを金属探知機にかけたら警報が鳴った。
Aを取り出してから再度かばんを検査するとまた警報が鳴った。
次にBを取り出して検査するとまた警報が鳴った。
さらにCを取り出して検査すると今度は警報が鳴らなかった。

あなたが次にするべきことは次のうちどちらか。

– かばんの中身はDとEで決定する
– AとBを順番にかばんに入れて検査し、警報が鳴らないならかばんに入れておくことを決定する(要するにAとBについて調べる)

これは私がAutoLayoutで感じた疑問である。

#AutoLayoutこの先生きのこる問題

AutoLayoutの3つの制約A,B,Cがある。
プライオリティはA>B>C。
ある状況でAとBはバッティングしてAとCはバッティングしなかった。
Bを排除することは決定だが、AとバッティングしないCはどうなるのか。

#結論
Cは排除される。

#検証コード

“`
import UIKit

class ViewController: UIViewController {

let vie

元記事を表示

coremltools 3.1の環境構築(2019年11月版)

Kerasでつくった自作モデルを環境構築したばかりの`coremltools`で変換しようとすると**エラーに次ぐエラー**で前進しているのか後退しているのかさえわからない状態になったので、まずは`coremltools`リポジトリにあるexamplesが実行できるよう環境構築をやり直したメモ。

https://github.com/apple/coremltools

ちなみに2019.11.4現在でcoremltoolsの最新リリースは`3.1`。

https://github.com/apple/coremltools/releases

## README通りに環境構築(結果的にはNG)

前提:仮想環境を利用。筆者はAnacondaを利用してPython 3.7の環境を用意した。

– coremltoolsをインストール

“`
$ pip install -U coremltools
“`

– KerasとTensorFlowをインストール

“`
$ pip install keras tensorflow
“`

– 確認

“`
$ pip free

元記事を表示

キーボードで操作できるiOS/iPadOSブラウザWazari Browserを作った

![github_issue_without_touch](https://user-images.githubusercontent.com/1880965/67365457-a69d0880-f5ac-11e9-84ef-06d448a7c4c6.gif)

[App Store – Download](https://apps.apple.com/us/app/wazari-browser/id1475585924?mt=8)

ブラウザを作ったといってもiOSではWebkitを使わないといけないという制約があるので、実際はWebviewに色々UIを追加したものを作りました。そう、React Nativeでね。 2015年に[一人React Native](https://qiita.com/advent-calendar/2015/react-native) を書いたのが非常に懐かしいです。あれから、どのようにReact Nativeが進化していったかを含めて良い勉強になりました。

開発することを決めた理由は、iPad Proのキーボード操作が不便だったからです。画面をタップ

元記事を表示

【独学】React Nativeを初心者が学習してみた part1

# はじめに
筆者のプログラミング学習歴は独学で5ヶ月ほど。
普段はRuby on Rails5を学習している初学者の私が、面白そうなのでReact Nativeを学習してみることにした。
iOSアプリ作ってみたいし、ついでにReactも学べばRailsで作ったWebサービスのフロントエンドが充実するかもしれない!といった安直な考えだけで学習を始めてしまったのだが、本当にこれで良かったのか…。
その答えはいずれ私がReact,React Nativeを習得した時にわかるだろう。

# React Nativeとは何か
[公式サイト](https://facebook.github.io/react-native/)や様々なqiitaの記事を読み漁ったが、[こちらの記事](https://qiita.com/Iwark/items/7c27e919bb71f8b256f6)にわかりやすくまとめられていた。
要は、React NativeはReactをモバイルでも使えるようにしたもの。
そしてそのReactはJavaScriptのフレームワークということ。
現時点ではこの程度しか理解で

元記事を表示

[SwiftUI]TabViewの作り方

# 前提
初投稿です。
筆者はSwift・iOS開発、初学者です。

これから、学習も兼ねてアプリ開発をしていこうと考えています。
この記事は、学習メモ的なものとして書いています。

もし読んでいただける方がいるとして、
記載内容に不備等ありましたら、ご指摘いただけますと幸いです。

※ 初学者であるため、Storyboardだとこうだよね、UIKitだとこうだよね、などという親切な解説はございません。
あらかじめご了承ください。

# TabView
下に並んでるやつのこと。

スクリーンショット 2019-11-03 22.21.09.png

# Code
Xcode > Create a new project > Tabbed app
でプロジェクト作成すると、こんな感じのコードがすでに生成されてます。

元記事を表示

白背景がダークモードの時に真っ暗になってしまう問題に注意

先日[AI顔診断メーカー]()というアプリをリリースしたのですが、「黒くなってしまって経験人数が表示されません!」というユーザーからの声をたくさんいただき、最初原因がわからなくてハマっていたのですが、、、(下画像、左が正常で右がバグ)

スクリーンショット 2019-11-03 22.03.14.png

**問題は、iOS13からのダークモードでした!**

背景をsystem background colorにしているとダークモードにした時に黒くなってしまいます。

スクリーンショット 2019-11-03 22.04.33.png[macOS/iOS] FileHandleをrawモードで読み出す方法

# [macOS/iOS] FileHandleをrawモードで読み出す方法
元記事は、StackOverflowの、[Listening to stdin in Swift](https://stackoverflow.com/questions/49748507/listening-to-stdin-in-swift)です。特に、サンプルコードは丸写しです。

## 環境
* 作成日: 2019/11/03
* macOS 10.15
* Xcode 11.0
* Swift 5

## 課題
標準入力の[FileHandle](https://developer.apple.com/documentation/foundation/filehandle)オブジェクトを、availableDataメソッドで呼び出した場合、改行キーが押されるまで、結果を返さない。キー入力ごとに値を取り出したい。

## 解決方法
標準入力のFileHandleを、rawモードで動作させる。下記のサンプルコードは、StackOverflowの[Listening to stdin in Swift](

元記事を表示

Android/iOSアプリのアーキテクチャ検討

# はじめに
アプリのアーキテクチャというと、僕が一番はじめに思い浮かぶのはMVCとかMVP、Fluxみたいな
今回のアプリでどのパターンを採用するかという点です。
ただ、現場でそのパターンだけ考えれば良いかというとそれ以外の部分に対しても
もっと検討することが多くて、何を検討するかがまとまっていないことが多いので、
自分の備忘録としてまとめてみることにしました。

# お題
・アプリが起動したらQiitaの記事の一覧を表示できる
・記事をタップしたら、Webのページで記事の内容を閲覧できる
・どの記事を見たのか、履歴を確認できる
・どんな記事を見たのか集計して、アプリの改善に使いたい
・(簡単にするため、認証はなし)

というQiita閲覧アプリで考えてみます

# 要素を分解してみる
> アプリが起動したらQiitaの記事の一覧を表示できるアプリ

QiitaのAPIを使った通信が必要。
https://qiita.com/api/v2/docs#投稿

APIはJSONなので、JSONを解析できるライブラリがあると楽そう。
リスト表示であれば、標準コンポーネントで十分。

> ・

元記事を表示

Xcodeで開発したアプリを審査通す前に身内へ試しに使ってもらうメモ

#概要

普段はReact NativeでiOSアプリを開発してます

今回は、iOSアプリは審査に出して通るまで公開できずに それまで試しに友人に使ってもらうことはできないと落ち込んでる人へ そんなことはないぞと反論するメモを共有します

#解決策
###インストール側
身内に使ってもらうのであればまず[TestFlight](https://apps.apple.com/jp/app/testflight/id899247664)をインストールしてもらい
AppStoreConnectに[サインアップ](https://appleid.apple.com/account?appId=632&returnUrl=https%3A%2F%2Fdeveloper.apple.com%2Faccount%2F#!&page=create)させましょう

File.jpgXcode プライベートフレームワーク を利用した macOS プログラムを作成する

## 概要

[新規 Xcode project を自動生成する技術](https://qiita.com/manicmaniac/items/240cd9cf1367a37763ab) にて Xcode プライベートフレームワークを用いたプログラムを作成しました。
Xcode プライベートフレームワークはプライベートというだけあり一切のドキュメントは存在せず、ヘッダーファイルすら公開されていません。
そんな状態から API を読み解き、実用的なプログラムから利用するためにはどうすればいいのかを記します。

## 目的

Xcode プライベートフレームワークを利用したい目的はいろいろ考えられます。

最もよくあるシチュエーションは、Xcode プラグインを作成するときでしょう。
たとえば [XVim](https://github.com/XVimProject/XVim2) というプラグインは Vim 風のキーバインドを Xcode で実現するためのものです。
これは Xcode Source Editor Extension などの公開 API では実現できない機能を含むため、か

元記事を表示

新規 Xcode project を自動生成する技術

## 概要

Xcode プロジェクトをプログラムから自動生成したいと思ったことはありますか?
私はあります。
しかも **Xcode がやるのとまったく同じように動き、Xcode バージョンによって微妙に異なるプロジェクトテンプレートを出し分けたり**もしたいです。
ローカルのマシンだけでなく、**CI上でも動けば完璧**ですね。

ご存知の通り、手動で新規で Xcode プロジェクトを作るには

1. Xcode.app を開く
2. メニューバーの `File` → `New` → `Project…` と辿る、もしくは単に `Shift + ⌘ + n` を押す
3. プロジェクトテンプレートを選ぶ
4. 色々聞かれるので入力する

などと結構手間がかかります。
また、何らかの理由でプログラムからプロジェクトを自動生成したいときにはこの方法ではうまくいきません。
にもかかわらず、Xcode そのものや、また Xcode に同梱されている `xcodebuild` などのコマンドラインツールにはプロジェクト作成のインターフェースが用意されていません。

世の中には自分以外にも

元記事を表示

[Catalyst]ストア申請の流れ

# Catalystを有効にする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24979/a40e2137-860d-b97f-15e9-fa3888f474aa.png)

XcodeのDeployment InfoからMacのチェックボックスにいれる。

# AppIDでもCatalystを有効にする

これ大事。maccatalyst.*.*.*というBundle IDでMacビルドが生成されるが、maccatalystというprefixのbundleIDは自分で作ることが出来ない。
Developer portalからCertificates, IdentifiersでiOSアプリのAppIDを探してMacを有効にする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24979/1809f166-092f-f0f7-82c0-83369ebac6e4.png)

# 別アプリと

元記事を表示

SelenideでiOS実機の自動テスト

# はじめに
本記事ではSelenideとAppiumを使ってiOS実機でWebアプリ(Safari),および,iOSアプリ(Native App)の自動テストを動かすことを目標とします.
そのため,テストの内容は画面を開いて何か操作する程度です.

SelenideはSeleniumのラッパーですので,Seleniumでも同様のことが可能です.

## 目次

1. Selenideのインストール
2. Appiumのインストール
3. 自動テスト〜Simulator + Safari〜編
4. テスト対象自作アプリの作成
5. 自動テスト〜Simulator + 自作アプリ〜編
6. 実機テストの準備
7. 自動テスト〜実機 + Safari〜編
8. 自動テスト〜実機 + 自作アプリ〜編
9. WDAの手動インストール
10. 最後に

## 環境や使うもの

– Mac macOS Mojave 10.14.6
– Eclipse 2019-06
– Java 12
– Maven
– Selenide v5.4.1
– Appium v1.15.1
– Xcode 11

元記事を表示

【Flutter】 アプリ開発入門 Hello Flutter!!

# この記事で紹介すること

FlutterのSDKインストールから、Hello Flutterアプリ開発までを紹介

1. FlutterSDKインストール
2. Android Studio にFlutterプラグインのインストール
3. Android Studio にDartプラグインのインストール
4. Hello Flutterアプリ起動

※私自身すでに、Xcode、Android Studioはインストール済みでしたので、そちらはインストールを済ませておいてください。

# Flutterとは

[Flutter](https://flutter.dev/)は、Googleによって開発されたモバイルアプリケーションSDK

↓↓↓公式サイトから引用↓↓↓

“`
Flutter allows you to build beautiful native apps on iOS and Android from a single codebase.
(Google翻訳: Flutterを使うと、iOSとAndroid上で単一のコードベースから美しいネイティブアプリケーショ

元記事を表示

素人がiPhoneアプリを作った話<メッセージ表示>

ちょっと時間が空いてしまいました。
プライベートでい家族の不幸などろいろあってなかなか時間が取れませんでした。

その間、ニフティクラウドのモバイルバックエンドのおかげでバージョンアップしないといけなくなり、Lancersで手伝ってくれるランサーを探したのですが、コミュニケーションが上手く取れず、心が折れました。
そして、アップルにバージョンアップを申請するも、WordPress Rest APIで作ったSNS機能が何も変更していないのに投稿削除ができなくなっていることで、申請却下( ̄◇ ̄;)
そのまま放置しています。_| ̄|○
誰か助けて〜!_:(´ཀ`」 ∠):
薄謝支払いますけん(>人<;)

チームで開発をしたことがない(開発そのものが初めてだし!)ので、どうやって共有するのかなどもあまりよくわかっていませんが、一人ではできないことを力を合わせてやるということをやりたいので、引き続き協力者を募集中です(^人^)

というわけで、続きをとりあえず連投します(間違えて同じものを先ほど投稿しましたので削除しました)。

#やりたかったこと

+ 100を超える数の励ましのメッセージ

元記事を表示

JavaScriptでアプリを開発できることを知り、環境構築し新規アプリ開発に臨むまで

#概要
普段はReact NativeでiOSアプリを開発してます

今回は、初心に帰りiOSアプリを作る際あとあとAnd/roi/dでも作ることを見越してなにかいいフレームワークないかなと作る前に調べた結果ReactNativeを見つけiOSアプリ実装してきたことを思い出しつつその過程のメモを共有していきます

#環境構築…を行う前に
MacOSにて、
基本的に[ReactNative](https://facebook.github.io/react-native/docs/0.54/getting-started)に沿って構築していきます

が下記手順を行う前に長時間かかるであろう、[Xcode]
(https://apps.apple.com/jp/app/xcode/id497799835?mt=12)を並行してインストールし環境構築時間の短縮を試みましょう

#環境構築
では改めて構築していきます

ReactNativeを動かすためのライブラリを[Homebrew](https://brew.sh/index_ja)でのインストールを行います
Homebrewがな

元記事を表示

IPAファイルの署名やプロファイルを手作業で差し替える

勤務先のプロジェクトで発生したトラブル対応のお話を、備忘録も含め書き残したいと思います。

# Enterprise な Developer Program に優しくない
勤務先のあるプロジェクトでは、私が所属しているのとは別のチームのメンバーが Unreal Engine (以下、UE) でモバイルアプリを開発し、そのアプリの配布先がインハウスな iOS デバイス、というワークフローが存在します。

今回そのプロジェクトの成果物であるアプリが、Provisioning Profile の有効期限切れを迎えるため UE 側から再ビルドしようとしていたのですが、Apple の証明書周りの不具合?でビルドできず詰んでしまい、急遽 .ipa ファイルの中身 (Provisioning Profile) を差し替え、手作業で再署名することでなんとか延命しようと対応しました。

もはや慣れっこですが、iOS 開発は Developer Program 契約なしでの開発入門であったり、Xcode による証明書の自動生成であったり、何かと “初見殺し” とか、”最初は問題なくとも後々の応用部分で詰む

元記事を表示

OTHERカテゴリの最新記事