- 1. iOS で AppleID の個人情報が開かない
- 2. 【SwiftUI】削って遊べるスクラッチを作ってみる
- 3. Share Extensionからjavascriptを使いSafari内の情報を取得
- 4. 【Qiitaでも使えるよ】PWAって何?
- 5. 【SwiftUI】左右の要素がちょっと見えているバナーを実装する(iOS17)
- 6. 【未経験エンジニア】iOSアプリ開発に臨む
- 7. 【SwiftUI】Chartのスクロール位置を設定する
- 8. ReactNative WebViewのAPIのメソッドを確認してみた
- 9. 【SwiftUI】スクロールするとふわっとコンテンツが下から出現するあれ
- 10. Stable Diffusion を Core ML に変換する
- 11. 【Flutter】画面のスクリーンショット&録画を禁止する方法
- 12. 【SwiftUI】非公開フレームワークのOnBoardingKitというものがあるらしい
- 13. 関数とメソッドの違いについて
- 14. 【swift】 Autolayout-基礎編-
- 15. 【SwiftUI】1番下までスクロールしたら同意ボタンが押せるようになる機能を実装したい
- 16. BlueskyにiPhoneのミュージックで再生している曲をiOSショートカットで投稿する
- 17. React Native WebViewの基本的な機能とAPIの活用方法
- 18. 【iOS】iOSアプリのローカライズ方法
- 19. 【SwiftUI】ScrollViewの範囲を超えてもコンテンツを表示する
- 20. オフラインのスマホ(iOS)でPythonを動かす
iOS で AppleID の個人情報が開かない
# はじめに
iPhone の設定で AppleID は開くが、その先の `個人情報` がグレーになり、開かないというケースについて悩んでいる人がいたので、原因と解決策をまとます。以下の写真のようなケースです:::note info
そもそも AppleID 自体がグレーになっていて開かない場合についても取り上げます
:::# AppleIDが開かない
AppleID がグレーになり開かない理由は、スクリーンタイムの中で規制されているからです
設定 > スクリーンタイム > コンテンツとプライバシーの制限 > アカウント変更
が`許可しない`になっている場合開かないので、許可してください
# AppleID のその先がグレーになって開けない
開けない理由は2つケースに分けられます
1. ネット接続
【SwiftUI】削って遊べるスクラッチを作ってみる
# はじめに
削って何の絵が出てくるでしょう?みたいなスクラッチゲームを作ってみます。# サンプルアプリ
![Simulator Screen Recording – iPhone 15 Pro – 2024-02-29 at 21.09.57.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/46ea0ca1-267b-f9b2-c91e-579ed2bb7b0a.gif)# 実装
“`swift
import SwiftUIstruct DrawLine: Identifiable {
let id = UUID()
var points: [CGPoint]
}struct ContentView: View {
@State private var pastLines: [DrawLine] = []
@State private var currentLine: DrawLine?
var b
Share Extensionからjavascriptを使いSafari内の情報を取得
## 課題
[Bookmarks](https://apps.apple.com/app/id1590304377)でSafariからリンクをShare Extensionで追加するとき、選択している文字をメモに追加できるようにしてほしいとフィードバックがあった。### 他のアプリの実装例
– Buchen https://apps.apple.com/app/id1549093588## 実装
### スクリプトの作成
“`javascript
var ProcessingClass = function() {};ProcessingClass.prototype = {
run: function(arguments) {
arguments.completionFunction({
“title”: document.title,
“url”: document.URL,
“selected”: document.getSelection().toString()
});
【Qiitaでも使えるよ】PWAって何?
## はじめに
PWAについて皆さんは知っていますか?僕は、1年前まではPWAについて知りませんでした。
iOSも2018年にリリースされたVer.11.3からPWAへ対応するようになり、Iphoneユーザーの多い日本では知名度があまり高くない(エンジニア界隈は除く)と思いますが、今回は自分のようにPWAについて知らない人のために、PWAについて解説していきたいと思います。
## PWAとは
PWAとは「Progressive Web Apps」の略で、Webアプリケーションをネイティブアプリケーションのように動作させるための技術です。PWAの利点として、インストールせずにすぐ利用することができ、かつ
ホーム画面のアイコンからすぐアクセスしたり、通知を受け取ることができるという点があります。誤解を恐れずにいうと、PWAは、Webアプリケーションとネイティブアプリケーションの中間のようなものです。
また、開発者側の利点としてOS毎にアプリを開発する必要がなく、Webアプリケーションを開発するだけで済むので、開発コストを抑えることができます。
### PWAの原則につい
【SwiftUI】左右の要素がちょっと見えているバナーを実装する(iOS17)
# はじめに
キャンペーンのバナーとかでよくみる、左右の要素がちょっと見えているカルーセルUIをSwiftUIで実装してみたいと思います。# サンプルアプリ
![Simulator Screen Recording – iPhone 15 Pro – 2024-02-28 at 23.44.16.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1bb50179-81ea-b625-77bb-91b69dd25855.gif)# 実装
“`swift
import SwiftUIstruct ContentView: View {
private let carouselRange = 0..<10 var body: some View { ScrollView(.horizontal, showsIndicators: false) { HStack { ForEach(car
【未経験エンジニア】iOSアプリ開発に臨む
# はじめに
この記事は、エンジニア未経験者がiOSアプリを開発したらどうなるのか、を記録した記事です。技術に関する単語の誤りや、開発手法に思うことが多々あると思いますが、興味本位で読んでいただければ嬉しいです。
また個人開発や独学未経験でもApp Storeへのリリースができるんだ!と僭越ながらお仲間の方の励みになれば幸いです。# 対象読者
– iOSアプリ開発に興味がある人
– React Native +expo構成に興味がある方
– プログラミングを独学で学んでいるお仲間の方# 作ったもの ♡ kawaii目覚まし時計
可愛らしいデザインと機能性を融合したアラームクロックアプリを作成しました。
機能はシンプルで、目覚ましをセットすると指定した時間に可愛いセリフが流れます。
セリフ10種類のうちランダムで再生されます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676445/89dea3bd-c07a-2439-60e0-ed0d4e3f5f22.png)
▽▽
【SwiftUI】Chartのスクロール位置を設定する
# はじめに
以前、Chartをスクロールできるようにしました。https://qiita.com/SNQ-2001/items/d53fc016523137f57094
今回はChartのスクロール位置を設定できるようにしてみます。
## データ
“`swift
import Foundationstruct Temperature {
let day: Int
let max: Double
let min: Double
}
“`# 実装
### 初期位置のみ設定したい
“`diff_swift
import SwiftUI
import Chartsstruct ContentView: View {
@State private var temperatures: [Temperature] = [
.init(day: 1, max: 23, min: 13),
.init(day: 2, max: 25, min: 10),
.init(day: 3, max: 23
ReactNative WebViewのAPIのメソッドを確認してみた
ReactNative WebViewのAPIドキュメントを読んで、どのようなメソッドがあるかを確認しました。
https://github.com/react-native-webview/react-native-webview/blob/master/docs/Reference.md
## goForward() / goBack()
“`tsx
goForward() / goBack()
“`
ユーザーがウェブページ内で履歴を戻ったり進んだりするための関数です。`goForward()`は一つ前のページに、`goBack()`は一つ前のページに戻ります.## reload()
“`tsx
reload()
“`
現在のページを再読み込みするための関数です。## stopLoading()
“`tsx
stopLoading()
“`
現在のページの読み込みを停止するための関数です。## injectJavaScript(str)
“`tsx
injectJavaScript(str)
“`
WebView内でJavaScriptを実行するため
【SwiftUI】スクロールするとふわっとコンテンツが下から出現するあれ
# はじめに
Webサイトとかだとよく見る、スクロールするとふわっとコンテンツが下から現れるあれをiOSで実装してみます。# サンプルアプリ
![Simulator Screen Recording – iPhone 15 Pro – 2024-02-26 at 21.19.56.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/6bf3ec5c-8189-3250-fa75-b4e7b62d899e.gif)# 実装
“`swift
import SwiftUIstruct ContentView: View {
var body: some View {
ScrollView {
VStack(spacing: 20) {
ForEach(0..<30) { index in GroupBox("新機能\(index)") {
Stable Diffusion を Core ML に変換する
Stable Diffusion も Core ML に変換できる。
MacOSや(実行時間はかかるが)iOSで使うこともできる。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/e67760ec-2a9c-9f66-59f7-578d14e6fdd8.png)
# 変換手順
### ml-stable-diffusion をインストール
アップルのstable duffusionのリポジトリをインストールします。
“`bash
git clone https://github.com/apple/ml-stable-diffusion.git
cd ml-stable-diffusion
pip3 install -r requirements.txt
pip3 install omegaconf
pip3 install safetensors
“`### case 1: Hugging Face Hub の Stable Diffusion モデルを変
【Flutter】画面のスクリーンショット&録画を禁止する方法
## はじめに
みなさんこんにちわ!
Flutterを学び始めて1ヶ月の新米エンジニアの**はるさん**です。現在携わっている仕事にて、『 画面のスクリーンショット&録画を禁止する方法』 について
調査する機会がありました。
いわゆる漫画などのビューワーアプリや映像のビューワーアプリ、機密情報が載っているページなど
その画面の情報が撮影ないしは録画されてはいけないものがあると思います。調査の結果、screen_protectorというパッケージを使えば簡単に実装することが
できるとわかりました。
その実装方法や原理について簡単にまとめてお話ししたいと思います。尚、私はもともとSwiftを使ったiOSアプリケーション開発の学習者です。
UIKit半年、SwiftUI半年学習してきました。
そどちらかうというとiOS側からの視点で説明していきたいと思います。### 記事の対象者
– Flutterを学習し始めた方
– 元々はSwiftをメインで学習していた方### 記事を執筆時点での筆者の環境
– macOS 14.3.1
– Xcode 15.2
– Swift
【SwiftUI】非公開フレームワークのOnBoardingKitというものがあるらしい
# はじめに
アップル製アプリで初回に表示される以下のような画面があります。これはOnBoardingKitのOBWelcomeControllerというものらしいです。
ただ、全体公開されているものではなく、非公開のフレームワークです。
このフレームワークを使う方法があるらしいので試してみました。:::note warn
**注意**
非公開フレームワークなので、これを使用してAppStoreにリリースすることはできないと思われます。
遊んでみたい人向けの記事です。
:::# サンプルアプリ
![Simulator Screen Recording – iPhone 15 Pro – 2024-02-25 at 22.18.51.gif](https://qiita-image-store.s3.ap-nor
関数とメソッドの違いについて
## はじめに
私は最近プログラミングスクールにて学習をスタートした初学者で、学習していく中で疑問が生じたので記事にしたいと思います。それは関数とメソッドの違いについてです。
難しく説明はできませんが、今の自分でも理解できるような簡単な説明文でしたので、記事として残しておきたいと思います。
書籍を読んでいて気づいたことなので、簡単な説明で終わってしまいますがご了承ください。
## 関数とメソッドの違い
“`swift:関数とメソッド
//関数
func thisIsAFunction() {
}
//メソッド
struct Person {
func thisIsAMethod() {
}
}
“`説明すると、メソッドはstructやclassのの中で定義されていて、関数はそうではありません。
## おわりに
今は、難しく考えるのではなく、簡単に違いを説明できる形で留めておきたいと思います。
【swift】 Autolayout-基礎編-
## AutoLayoutとは
XcodeのStoryboard上で配置したパーツが異なる端末で違う見え方をする場合があります
画面の大きさが端末によって異なるため、各パーツの大きさや余白の設定が不十分な場合に発生するためです💡
|iPhoneSEで起動した時|iPhone13ProMaxで起動した時|
|—|—|
|![SE.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483508/5fafe692-fd35-4c4a-4304-6ded8b17f51b.jpeg)|![13Promax.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483508/415ef7dc-9fe8-b339-9b68-2cb2cefe52b5.jpeg)|(画像はhttps://qiita.com/naoking21/items/08932587b9fdb337b3df より引用)
AutoLayout(制約)を利用して各パー
【SwiftUI】1番下までスクロールしたら同意ボタンが押せるようになる機能を実装したい
# はじめに
SNS系のアプリで利用規約に同意させる画面が出ると思います。
利用規約を最後までスクロールしないと同意が押せないようなUIをよくみます。
それを再現してみます。# サンプルアプリ
![Simulator Screen Recording – iPhone 15 Pro – 2024-02-24 at 22.20.58.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/95c91e32-303e-93e5-65e5-3d97cb99344d.gif)# 実装
“`swift
import SwiftUIstruct ContentView: View {
@State private var scrolledToBottom = false
@State private var isAgreement = falsevar body: some View {
VStack {
ScrollV
BlueskyにiPhoneのミュージックで再生している曲をiOSショートカットで投稿する
タイトルのショートカットが完成したので、投稿します
# 前準備
まずは、BlueskyのiOSアプリの左上のハンバーガーメニューを開きます。設定→高度な設定→アプリパスワードを開きます。
![IMG_2239.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263486/4d399fec-3b1b-c48a-0db8-d98880c968f4.png)
アプリパスワードを追加します。
![IMG_2240.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263486/dc7fbea0-6177-4d26-42bd-9fc674d59f85.png)
ここで出力されたアプリパスワードは一度しか表示されません。メモ帳などにコピペしておきましょう。
# TextのみのNowplayingショートカット作成
以下のように入力します。![スクリーンショット 2024-02-29 16.02.19.png](https://qii
React Native WebViewの基本的な機能とAPIの活用方法
## はじめに
ReactNativeでWebViewを扱う場面があったので、公式ドキュメントを参考に簡単な機能を理解していきます。以下の公式のAPI Referenceを参考に進めていきます。### React Native WebView API Reference
https://github.com/react-native-webview/react-native-webview/blob/master/docs/Reference.md
## 内容
今回はこちらのライブラリーを使用します。
https://github.com/react-native-webview/react-native-webview
### インポート
“`js
import { WebView } from “react-native-webview”;
“`### useRefを用いる
WebViewのAPIのメソッドを用いるためには、`useRef`を使用する必要があります。使用することによって、WebViewのAPIのメソッドの参照が可能となります。“`js
【iOS】iOSアプリのローカライズ方法
# はじめに
こんにちは。
iOS開発の一環として、アプリのローカライズ方法について学んだので、その手順を共有したいと思います。# 実装前の準備
まず実装を始める前に以下の手順を行います。
1. Infoを選択してLocalizationsに使用する言語を「+」をクリックして追加する
1. File > New > File…を選択してStrings Fileを選択しLocalizable.stringsを作成する
1. 作成したLocalizable.stringsをクリックしてUtilityAreaからLocalizationボタンをクリックして言語を確定させる
1. 2と3を言語分作成する# 設定アプリの言語変更によりローカライズ対応を行う(StoryBoard)
StoryBoardで作成している人向けです。
設定アプリで言語変更を行いその変更に伴い言語を変わるようにするときは以下の対応を行います
1. storyboardにカーソルを合わせてUtilityAreaにあるLocalizationの設定言語にチェックを入れる
1. Main.strings(チェック入
【SwiftUI】ScrollViewの範囲を超えてもコンテンツを表示する
# はじめに
iOS17から`scrollClipDisabled`というものが追加されました。
ある時とない時の動きの違いを記録しておきます。# サンプルアプリ
![Simulator Screen Recording – iPhone 15 Pro – 2024-02-23 at 23.03.08.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/68c2bd37-de19-1ef4-0714-f636c201570d.gif)# 実装
“`swift
import SwiftUIstruct ContentView: View {
var body: some View {
VStack(spacing: 0) {
Rectangle()
.fill(Material.regular)
.zIndex(1) // ScrollViewより高くすることで、Scro
オフラインのスマホ(iOS)でPythonを動かす
## 概要
個人情報をサーバーに送らずにデータ分析したいといった要望はままあります。
また、分析するコードをPythonで開発後に、Swiftに移植するのはかなり手間です。
ソリューションとしてオフラインでPythonを実行できないか以前に調べた内容を紹介します。https://github.com/pyodide/pyodide/discussions/2188
これはPyodideをWebkitから実行する方法です。
将来的には[wasmer/python](https://wasmer.io/python/python)で直接実行できることでしょう。
ちなみに上記ディスカッションのotmbは私の個人アカウントです。## 環境構築
適当にPyodideの最新版を引っ張ってきます。
“`
$ curl -LO https://github.com/pyodide/pyodide/releases/download/0.26.0a2/pyodide-core-0.26.0a2.tar.bz2
$ tar xvjf pyodide-core-0.26.0a2.tar.b