- 0.0.1. SwiftUI × CoreData データ削除時のクラッシュについて
- 0.0.2. iPadOSシミュレータに忍ぶ罠 ~あのMBPが危ない!~
- 0.0.3. ヘルスケアとショートカットappを使ってリモート勤務の運動不足と向き合う
- 0.0.4. iPhoneでCプログラミングしてみた
- 0.0.5. Swiftでユニットテストを導入する上で押さえておきたいこと
- 0.0.6. シミュレータの画面収録メモ
- 0.0.7. Flutterで書くiOSアプリハンズオン(QiitaClientを作ってみよう)
- 0.0.8. 【Flutter】キーボード外タップで、キーボードを閉じる
- 0.0.9. #25 横ScrollViewの使い方1例
- 0.0.10. 今更MVCとかでiOSアプリつくってみた(Swift)・改
- 0.0.11. Xcodeでよく使うショートカットキー
- 0.0.12. swiftの基礎的な書き方
- 0.0.13. iPhoneのショートカットAppを使って、ヘルスケアに体温を楽々で記録する
- 0.0.14. 【SwiftUI】EmptyStateを作って理解するPreferenceKey
- 0.0.15. FlutterがiPhoneの実機ではビルドできない人へ
- 1. iOS13.3ではビルドできないよ!!!13.4にアップデートしましょう!!
SwiftUI × CoreData データ削除時のクラッシュについて
# 概要
SwiftUI と CoreData の練習のためにToDoアプリを作成していたところ、
データの削除時にクラッシュする事象がありましたのでその解決方法を記載します。# 環境
macOS : Catalina(10.15.3)
Xcode : Version 11.4
Swift : 5.2# 原因
Viewの構成としては、
ListView:ToDoの一覧をListで表示する
ListRowView:ToDoの一覧の各ToDoのデータを表示する。DetailViewで更新があった場合、このViewにも反映させる
DetailView:ToDoの詳細を表示する。ToDoの一覧からナビゲーションリンクで画面遷移する。ToDoの更新を行う
となっています。ListViewでfetchしたCoreDataのオブジェクトをListRowViewとDetailViewに`@EnvironmentObject`で参照渡ししています。
これは、DetailViewでオブジェクトの更新をし、さらに更新内容をListRowViewに反映させるためです。Listをスワイプして削
iPadOSシミュレータに忍ぶ罠 ~あのMBPが危ない!~
Xcode11.4 よりiPadOS Simulatorに「Capture Cursor」と「Capture Keyboard」という機能が搭載されました。
これは便利ですねー。
**ただし**、物理ESCキーが付いていない**特定のMBP**をご利用の方はご注意ください。
初期設定のままキャプチャーモードに入ってしまうと、**二度と抜け出すことが出来なくなります**。
私は仕方なく**強制再起動**しました。
(外部キーボードがあればなんとかなったかもしれません)環境設定から変更できますのでまず初めに変更しましょう。
初期設定はescになっています。![EU1NURxU0AApHUh.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2117/2d76bed7-7455-90f2-c480-24943e724cec.jpeg)
ヘルスケアとショートカットappを使ってリモート勤務の運動不足と向き合う
## この記事の要約
– 特に勤務のリモート化による運動不足、かなり深刻だと思うんですよ。
– なので、皆さんご自身の記録を見て欲しいという啓蒙。
– ショートカットで確認の自動化を試みたけどダメだったという話。## 自覚無き運動不足
皆さん、勤務形態は如何ほどでしょうか。以前、はるか古代より続くSIer社会に組み込まれていた頃のことを思うと、多種多様な職場、業態、業界でリモートや時差出勤などが試みられており、驚きを隠しきれません。まさか日本でもこんなに変わるとは思いませんでした。
一方、先行して首都封鎖、ロックダウンをやっていた海外の都市封鎖された地域のニュースを見ていると、犬の散歩とランニングは許可だとか、ポケモンGOをやっていて逮捕されたとかを目にしました。
実際のところ、私もリモート作業になりはじめましたが、効率性であったり、コミュニケーションの困難さであったり、通勤時間がなくなって可処分時間が増えて幸福度が上がる、どうぶつの森を封印するところから始めるなど、様々な声が聞こえてきます。私も作業環境を職場に移すことで娯楽を切り離して集中出来ていたタイプなので、進捗に困難が
iPhoneでCプログラミングしてみた
#はじめに
今回、[**モバイル C [ C/C++ コンパイラ ]**][app]というiOSアプリを使いました。
やはり、今更感はありますかね?
インストールから間もなくて、あまり使い慣れていませんが
行ってみましょう…#実行環境
“`console
端末:iPhone7 (最近バッテリーが貧弱)
アプリ:モバイルC[C/C++コンパイラ] (無料版)
“`
#エディタ画面
縦画面でもできますし、フリック入力のキーボードでも入力できました。
画面のテーマ変更もできました。(これはdark)
![エディタ画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506931/ce8c3dc4-1fa6-f93c-1a88-674c633145ed.png)#色々実行してみた
実行は`ランボタン`もしくは`コンソールでファイル名を指定`するとできるみたい。
アプリ上での実行結果をコピペしてます。
###①おはよう世界
“`c:ex01.c
#include
int main(
Swiftでユニットテストを導入する上で押さえておきたいこと
## はじめに
技術書クラウドファンディングのPEAKSから販売されている[iOSテスト全書](https://peaks.cc/books/iOS_testing)の第2章・ユニットテストを読んで、ユニットテストを導入する上で押さえておきたい点を備忘録としてまとめました。
## ユニットテストとは
– ユニットテストとは、構造体やクラス、関数などのシステムにおける最小単位のコンポーネントに対して行うテストのこと
– **自動化**され、**繰り返し実行可能**で、**統一的な仕組みに支えられた**テスト
– 上記を満たすために、テストを資産として残すことが可能で、テストの実行や結果のレポートを行ってくれるテスティングフレームワーク(XCTest、Quick/Nimble)を用いる## 導入するモチベーション
**1. より早い段階で不具合に気づく**
処理単位で正しいことを検証できたら早いタイミングで不具合に気づくことができ、手戻りを減らせる**2. コードや設計を継続的に改善できる状態にする**
ユニットテストの整備が安全網として働き、コードや設計を継続的に改善でき
シミュレータの画面収録メモ
# 画面を収録する
「shift + command + 5」で収録する
https://support.apple.com/ja-jp/HT208721# Trimする
QuickTimePlayerで開いて、メニューバーの編集 > トリム…(Command + T)# 必要なら、FFmpegでgifにする
こちらの記事を参考に
https://qiita.com/wMETAw/items/fdb754022aec1da88e6e
Flutterで書くiOSアプリハンズオン(QiitaClientを作ってみよう)
## これは何?
Flutterを使ったハンズオン用の記事です。
以前Flutterの勉強をした際に簡単なQiitaClientを作ったので、イベントなどで登壇したときに使えるようにハンズオン形式にまとめてみました。## 使用するAPI
今回はQiitaAPiを題材とします。([ドキュメント](https://qiita.com/api/v2/docs))登録不要で使えて、例えば、 https://qiita.com//api/v2/items で、投稿を取得できます。
“`javascript
[{
rendered_body: ”プロローグ
## キーボードを閉じるには?
主に以下の2つの方法があります。
今回は、1の方法を紹介いたします。1. キーボード外の画面タップでキーボードを閉じる
2. キーボード上に閉じるボタンを配置する## キーボード外の画面タップでキーボードを閉じる
キーボードを閉じる処理は以下のコードです。
“`Dart
FocusScope.of(context).unfocus()
“`画面タップ時に上記の処理を発火させるには、`GestureDetector`を使用して、以下のように記載いたします。
“`Dart
GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
child: HomePage(),
),
“`だいたいこんな感じです
“`Dart
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@ove
#25 横ScrollViewの使い方1例
#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.#環境
Xcode:11.4
Swift:5.2
2020/04##part1
`UIViewController`に`UINavigationBar`を置く.##part2
`UINavigationBar`に下の4つの制約を付ける.# はじめに
以前に書いた[今更MVCとかでiOSアプリつくってみた(Swift)](https://qiita.com/am10/items/6e76ec231ee1251560cc)はなぜ MVC を導入するのかふわっとしてるし分け方もふわっとしててなんか違うなと思っていたのですが何が違うかわからず放置していました。
が、未だに LGTM ついたりしてまずいなと思い MVC について再考するために今回の記事を書きました。(google で「swift mvc」で検索するとわりと上位にくる。やっぱり Qiita の SEO すげぇ)* アーキテクチャの起源は MVC であり他のアーキテクチャは MVC の課題を解決するために派生していったものであり MVC の理解がアーキテクチャの理解の第一歩と考え今更ですが MVC についての記事を書きました。
わりと長くなったのでめんどくさい人はソースだけでもどうぞ:bow:
* [VC3つのみでつくったやつ](https://github.com/adventam10/SwiftArchitecture2/tree/fat_fat
Xcodeでよく使うショートカットキー
#よく使うショートカットキー
・Shift+Command+O
上の画像のような検索バーが出てファイルを検索できる。・Command+B
ビルド・Command+R
ビルドして実行
上の画像のようなシュミレーターが起動する。・Shift+Command+L
swiftの基礎的な書き方Xcodeの基礎的なことを書いていきます。
#変数と定数
変数は数学で習う、χみたいなもので数字を何回でも入れ替えることができる。
変数では、先頭にvarをつける。
`var 変数名: 型名`
定数は一度決めたら変えられないもの。
例えば円の直径を計算するときのπ=3.14みたいな、変えたらおかしくなってしまうもの。
定数は先頭にletをつける。
`let 変数名: 型名`#Swiftのデータ型
Swiftのデータ型を書いていきます。
####Int型
正と負のデータを扱うときに使う。
####Double型
小数点を扱うときに使う。
小数点を扱うものにFloat型もあるがこれは扱える範囲が狭いため基本的にはDouble型を使う。
####String型
文字列を扱うときに使う。
####Bool型
論理演算でtrueかfalseを扱うときに使う。#条件分岐処理
条件分岐をするときは大体if文を使う。
こんな感じ“`swift
var num = 10if (num > 5) {
print(“true”)
} else {
print(“false”
iPhoneのショートカットAppを使って、ヘルスケアに体温を楽々で記録する
みなさんこんばんは、スズキです。コロナ流行ってますね。怖いです。
## 求められる検温
さて、世の中的にはリモートが広まりつつありますが、友人の会社は作業開始時の日報に検温の記録が求められ始めたそうです。いやまぁ確かに学校と保育園は既にそうではあった。
そして、**「検温記録で検索したらルナルナしか出ない、そうじゃないんだ」**という声が飛び込んできました。検温の記録自体は、iOS標準のヘルスケアアプリに記録することが出来ます。ですが、辿り着くまでのUIUXがちょっと分かりにくいんですよね。ご婦人系のカテゴリの中に入ってしまっていて…。(あんまり言うのも野暮なので各自確認してくれ)。
結論として、**iPhone標準のヘルスケアアプリで体温の記録の蓄積は行なえます。**
ちょっと調べてみたところ、ショートカットAppのAPIがあったので、気不味い画面を開くこと無くスムーズに健康を管理出来るよう、レシピを作ってみたので公開します。尚、本件は以下のサイトを大いに参考にさせて頂きました。
ありがとうございます。[何となく風は爽やか](https://kazesawayaka
【SwiftUI】EmptyStateを作って理解するPreferenceKey
この記事は、SwiftUIで以下のような**「子孫Viewの情報をコンテナViewで読み取るデザインのカスタムViewを作りたい」**というiOSエンジニアへの知見共有を目的としており、調べた情報をなるべく素直に伝えていけるように書いていきます。
“`swift
NavigationView {
Text(“Hello World”)
.navigationTitle(“MyApp”)
}
“`自分が`EmptyState`をSwiftUIで作ってみたいと思って調べ始めたので、その流れに沿って進めていきます。
# APIデザイン設計
冒頭にも挙げましたが、SwiftUIとのAPI一貫性を保つコンポーネントを作るために以下のNavigationViewようなAPIを目指しました。## 参考にしたデザイン
“`swift
NavigationView {
Text(“Hello World”)
.navigationTitle(“MyApp”)
}
“`## ゴール
これまでのUIKit製のライブラリではDelega
FlutterがiPhoneの実機ではビルドできない人へ
iOS13.3ではビルドできないよ!!!13.4にアップデートしましょう!!
僕の伝えたいことはこれだけです。
謎のエラーにflutterでアプリ開発し始めた瞬間思いっきり出鼻を挫かれましたが、久々に触ってみて、iOSをアップデートしたら直りました。
しっかりstackoverflowか何かでアップデートに伴うバグはチェックしましょう、、、(自戒)
その他注意点
Xcodeの設定を忘れずにしましょう。
- Signing & CapabilityでTeamを設定すること
- BundleIDの設定
など。
・BundleIDの設定についてのメモ
アプリのBundleIDとそれが含めるbundleのBundleIDが一致しているよ(?)みたいなエラーが出た時はそれらのBundleIDを異なるものにしたら直りました。(雑すぎてすみません)リクエストがあればできるかぎり詳しく書いていこうと思います!!
“001 UILabelで文字を表示” iOS app開発 習得日記 (5)
UIkitを覚えるために
こちらの写経がいいときいたので始めた
(http://docs.fabo.io/swift/uikit/001_uilabel.html)001 UILabelで文字を表示
“`
import UIKitclass ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.let bWidth: CGFloat = 200
let bHeight: CGFloat = 50let posX: CGFloat = self.view.bounds.width/2 – bWidth/2
let posY: CGFloat = self.view.bounds
iPhone実機のUDIDを確認する
Appium等でiPhoneの操作を自動化するにあたって、UDIDを調べる必要が出てくる場合があります。
やり方も複数あるので、お好みの方法で。
## Apple Configurator2を使う
App Storeからダウンロードできます
### 手順
まず、iPhoneの実機をMacにUSB接続します。
次に、AppleConfigurator2を起動します。
すると、画面に接続済みのiPhoneが表示されます。![スクリーンショット 2020-04-08 17.03.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/99336
RxSwiftとApolloでつくるGraphQL API Client
## はじめに
今までRxSwiftをあまり積極的に使用していなかったのですが、
最近業務で使う機会がありましたので、
勉強のために作ったデモアプリの内容をまとめていこうと思います。## 開発環境
|Tool|Version|Description|
|:–:|:–:|:–:|
|Xcode|11.3.1 (11C505)|IDE|
|apollo|2.26.0|Apollo GraphQLのコマンドラインツール
https://www.npmjs.com/package/apollo|ライブラリの導入は、Swift Package Managerで行いました。
|Library|Version|Description|
|:–:|:–:|:–:|
|apollo-ios|0.24.0|GraphQLクライアント|
|RxSwift|5.1.0|リアクティブプログラミング|
|RxApolloClient|1.3.0|Apolloクライアント用のRxSwift extension|
|RxViewController|1.0.0|UIViewControl
iOS app開発 習得日記 (4)
(https://qiita.com/nori0620/items/66ebc623f63fc3f0ca20)
こちらのサイトをみて勉強中
サーバーサイドのAPIというのを初めて作った。
json webサーバーにphpファイル遅れるだけで作れるとは。本チャンのios app
“`
import UIKit
import Firebase
import GoogleMobileAds@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {var window: UIWindow?
var myNavigationController: UINavigationController?
var json_string:String?
var selected_id: Int?func application(_ application: UIApplication, didFinishLaunchingWithOptions launc
CompositionalLayoutでリマインダー風のレイアウトを実装する
## はじめに
CompositionalLayoutとは2019年にWWDCで発表されたUICollectionViewのレイアウト手法です。個人的にこのレイアウト手法が登場してからすごく楽にUICollectionViewのレイアウトを組めています!!(Webでいうとfloatからflexboxに変わるくらい)
しかし、学習する際に調べたところハンズオン形式で学べる記事というものがなかなか見つからなかったので、今回はCompositionalLayoutを使ってiOSにデフォルトでインストールされているリマインダー風のレイアウトを作っていきたいと思います!!また、初心者さん向けの話し方で説明していますのでご了承ください。[CompositionalLayoutについての詳細はこちらの記事が参考になるかと思います。](“https://qiita.com/shiz/items/a6032543a237bf2e1d19”)
## 目標物
少し雑ですがこのようなレイアウトを組んでいきたいと思います!!
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた