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

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

キーボードで操作できる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 による証明書の自動生成であったり、何かと “初見殺し” とか、”最初は問題なくとも後々の応用部分で詰む

元記事を表示

最新のiOSで最新のXcodeで実機ビルドしようとすると、最新のXcodeバージョンアップしてくれよと言われビルド出来ない

状況は掲題の通りで、Flutterを実機ビルドしようとすると「Xcodeでやってくれ」と言われ、Xcodeでビルドしてみると、最新なのに「最新のXcodeにアップデートしてくれ」と言われました。

今回こちらを参考にさせていただきました。
https://qiita.com/yamataku29/items/6fdc9e512b42d7f66386

Device Support Fileというのが足りないのが原因だった模様。こちらでダウンロード出来ます。
https://github.com/filsv/iPhoneOSDeviceSupport

私はiOS13.2でしたので13.2.zipをダウンロードし、READMEに従ってunzipしたものを`/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/`へ配置。
Xcodeを再起動したらXcodeでのビルドも、Flutterコマンドでのビルドも出来るようになりました!

出来るようになったのですが、今度はXcodeが

元記事を表示

Ionic + Firebaseで記録するカレンダーアプリを作る その2 実機でビルド

#完成イメージ

#はじめに

環境は以下の通り
・ionic4
・Nativeとの橋渡しには[capacitor](https://capacitor.ionicframework.com)を使用
・カレンダーについては[ionic2-calen

元記事を表示

【SwiftUI】contentShapeでTap領域を広げる

SwiftUIで
あるViewに
`onTapGesture`を設定した際
中にある個々のViewをタップすることはできますが
その他の領域はタップしても反応しません。

例えば下記ような`VStack`に対して`onTapGesture`を設定します。

“`swift

import SwiftUI

struct ContentView: View {

@State private var checked = false

var body: some View {

VStack(spacing: 20) {
Image(systemName: checked ? “checkmark.seal.fill” : “checkmark.seal”)
.foregroundColor(checked ? .green : .gray)
Text(“画像とテキストのみTapできる”)
}
.frame(width: 300, heigh

元記事を表示

【Swift】TableViewのセクションの色を変更する

# やりたいこと
![Screenshot 2019-11-02_00-16-14-502.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/509577/8479e3a6-6cc4-99eb-6709-093f0ceb8f20.png)

これを…

![Screenshot 2019-11-02_00-15-34-522.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/509577/7460de72-36aa-16ba-6f84-3175ac8990c9.png)

こうしたい

##やりかた
“`swift
// セクションの背景とテキストの色を変更する
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
// 背景色を変更す

元記事を表示

[Xcode] Fabric CrashlyticsのInfo.plistエラー

XcodeでiOSアプリをビルドしようとしたら、FabricのRun Scriptで `Info.plist` が処理できないという内容のエラーが発生しました。

![スクリーンショット 2019-11-01 11.15.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/e8d9efe4-e88c-c73c-379a-ac3c5bd0df7e.png)

## 環境

“`
❯ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.6
BuildVersion: 18G103

❯ xcodebuild -version
Xcode 11.1
Build version 11A1027
“`

## 解決方法

> Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics…
error: Info.plist E

元記事を表示

OTHERカテゴリの最新記事