iOS関連のことを調べてみた

iOS関連のことを調べてみた

WKWebViewで新しいウィンドウを開くリンクを外部ブラウザで処理する方法

## 概要
`WKWebView` を使用する際に、新しいウィンドウを開く必要があるリンクをクリックしたときに、そのリンクを外部ブラウザで開く方法を紹介します。このテクニックを使うことで、アプリ内で複雑なウィンドウ管理を避け、ユーザーにシームレスなブラウジング体験を提供できます。

## はじめに
iOS アプリで `WKWebView` を使ってウェブコンテンツを表示することはよくありますが、リンクが新しいウィンドウやタブで開かれるように設計されている場合、デフォルトではその動作を処理する必要があります。特に、そのようなリンクを外部ブラウザで開きたい場合、このテクニックが有効です。

## コードの解説

以下のコードは、新しいウィンドウを開くためのリンクがクリックされた場合、そのリンクを外部ブラウザで開く処理を行います。

“`swift
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNaviga

元記事を表示

TipKitを使ってアプリの機能のヒントを提示する

## はじめに

こちらの記事ではWWDC2023、2024に発表されたTipKitについて、非iOSエンジニア向けにまとめたものとなります。
– アプリ内の新機能をユーザーに認知してもらいたい
– そもそもTipKitを知らない
– TipKitというものを聞いたことはあるがどのように活用すればよいか分からない

これらに当てはまるデザイナーやPMの方に伝わりやすい内容となることを目指しています。
非エンジニア向けの記事になるので技術的な詳細は省いていきます。

## TipKitとは

TipKitはアプリにヒントを簡単に表示できるフレームワークです。主にユーザーのUI学習体験を向上させることができると個人的には思っています。
– アプリの新しい機能について教える
– 隠れた機能の発見を手伝う
– ユーザーの目的をより早く達成するやり方を教える

などの使い道があります。

## 必要な環境

– iOS17以上
– iOS18以上でしか使えない機能も追加で登場していますが、iOS17以上であれば後述する基本的なヒント表示できます
– SwiftUIで構築されたView

元記事を表示

【.NET MAUI】iOSウィジットの署名がおかしいのを修正する

## 何が起きたか

.NET MAUI(iOS)アプリに、iOSのウィジットを組み込んだアプリで、UserDefaultsの情報が共有されない状態になりました。

色々Try-And-Errorで試していたところ、どうやらアプリやウィジットの署名をしなおすと解決するようだったのでそのときの記録を残しておきます。

## 環境

このページの作業は、以下の環境で確認しました。

– macOS Ventura (Intel)
– Xcode 15.2
– Visual Studio Code + MAUIの拡張機能
– .NET SDK 8.0.302
– Visual Studio for Mac (インストールしていますが今回はIDEを使用していません)
※当作業時にMac版はすでに提供終了が決まっています

## 何をして解消したか

.NETでビルドの署名後に、手動でアプリやウィジットを再署名するようにして解消しました。

**.csproj**

まず、以下の定義を追加し、.NETによる署名後に任意のスクリプトを実行を割り込ませるようにしました。

“`xml

元記事を表示

PODの作り方(iPhoneアプリ制作)

ディレクトリ移動しプロジェクトの直下に移動してください

cd Documents/XXX

下記を実行するとpodファイルがプロジェクト配下にできる

pod init

Podfileをエディターで修正
下記のようにPodfileを修正
 ※今回はAdmobを入れたい

platform :ios, ‘15.0’
target ‘XXX’ do
use_frameworks!
pod ‘Google-Mobile-Ads-SDK’
end

修正後下記実行

pod update

完了

元記事を表示

プログラミングを行う上で意識していること4選

## 本記事について

プログラミングを学び始めたばかりの頃、どのように学習すれば良いか悩む方が多いと思います。私自身も最初は同じように悩み、遠回りしてしまったと感じています。

そんな私が、プログラミング経験を積んで年数を重ねた今だからこそ実感する、プログラミングを学ぶ際に意識すべき4つのポイントを紹介します。

:::note warn
今回紹介する内容が全て正しいとは限りません。
全て鵜呑みにせず、参考程度に留めてください。
:::

## 意識するポイント4選

1. ざっくりと全体像を掴む
1. コメントを活用する
1. デバッグでコードの流れを把握する
1. 自身で作りたいものを考えてコードを書いてみる

### 1. 全体像を掴む

コード細かく全てを理解せずに、ざっくり把握することを意識しています。
ざっくり把握するために、まず大枠のstruct(構造体)やclass(クラス)の名前から理解していきます。

下記のサンプルコードを見ながら、実際にイメージしてみましょう。
これはどんなデータまとまりでしょうか?

“`swift
struct UserSetting

元記事を表示

話題のkotlin Multiplatformを使ってみた(環境構築~ビルドまで)

# はじめに
みなさん、kotlin Multiplatform(KMP)ってご存じでしょうか?
https://www.jetbrains.com/ja-jp/kotlin-multiplatform/

Kotlin Multiplatformはさまざまなプラットフォーム向けのアプリケーションを作成し、ネイティブプログラミングのメリットを維持しながらプラットフォーム間でコードを再利用可能にするテクノロジーです。(公式原文まま)

何がすごいってiOS, android, windows, Linuxなど異なるOSで動作するので、これを使えば極論、全てのコードを一括管理できるわけなんです。

ひと昔はiOSならObjective-Cやswift、androidならandroid kotlinなど、OSごとに異なるソースで管理されていたものが、KMPを使うと一つのコードに集約できちゃうらしいんですよ!(筆者はiOSエンジニアなのでandroidエアプです)

最近はFlutterとか、React Nartiveとかでクロスプラットフォームフレームワークがどんどん出てきましたが、今回は、

元記事を表示

Tab Bar の上に AdMob バナー広告を表示する

昔作った iPhone 向けのアプリにバナー広告を Tab Bar の上へ追加したのですが、そのときにかなり時間がかかってしまったので、備忘録を残しておきます。SwiftUI ではなく、Storyboard でのお話です。

### 完成図
Tab Bar の上に広告が表示され、タブを切り替えても同じ広告が表示されます。

![screen.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3853334/b6b617d4-bcdb-d85f-8e1d-01cf5a00d474.png)

### 環境
Xcode: 15.2
Firebase Apple SDK: 10.28.0

### 画面構成 (Storyboard)
画面の下にタブの切り替えボタンがあるごく普通のレイアウトです。View Controller は、わかりやすく背景に色をつけた View を配置しています。青と赤の画面では、ボタンを配置し、それぞれ緑・黄色の画面へ遷移できるようにしています。

Tab Bar Controller

元記事を表示

iPhoneの実機からMacのlocalhostに接続する方法

Mac上のモック化されたAPIサーバーにiPhoneの実機から接続する方法です。

# 手順
* iPhoneのインターネット共有を有効にします
* MacからiPhoneのネットワークを利用するようにネットワーク設定を変更します
* MacのIPアドレスを調べます
* MacのIPアドレスをコードで指定します(例: `http://172.20.10.2/hoge.json` )
* iPhoneの実機からAPIなどを実行します

参考
https://ishwar-rimal.medium.com/accessing-macs-localhost-on-your-iphone-5d564a387f09

元記事を表示

iOSバーコードリーダーの読込範囲指定方法

# はじめに
iOSバーコードリーダーの読込範囲指定をしたかったが、なかなか上手くいかず、
解決するまでに時間がかかったため、読込範囲指定方法についての記事を投稿します。

またソースコードは最低限しか載せていません。
基本的なバーコード読み取り方法に関しては、他の記事を参考にしてみてください。

# 完成図
作成中のアプリにはなりますが、
バーコード読み取り後、楽天APIを叩き、楽天から書籍情報を取得し、表示させています。

![Videotogif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/204266/fbb3a7cd-2aea-ac71-0478-77e4bcd9a9fe.gif)

# バーコードリーダーの読込範囲指定方法

### 1. 読込範囲を指定するためのViewを作成

下記画像の通り、captureViewを作成します。

![スクリーンショット 2024-08-05 23.44.37.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

[2024年]FlutterをiOS Simulatorでデバックがうまくいかなかった時の解決方法

Fluttterをやり始めて、最初のころはchromeでデバックしていたのですが
iOS Simulatorでデバックしようとしたところうまくいかず苦労したので、
解決方法をメモしておきます。

【環境】
・PC:Mac(OS: Sonoma ver14.6)
・Flutter: ver. 3.22.3
・エディタ: cursor

## 症状
本来は、Simulatorを起動させておいてcursorのデバイス選択からSimulatorを選択し、
![sdヴィっxっcえ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332453/aeccfdaf-cf45-5ab1-58aa-c767b37c219e.png)

“Flutter”を選択状態で三角ボタンを押してデバックを実行するだけでいけます。
![流ううn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332453/392363a8-6c0e-642d-f9be

元記事を表示

【XCode】Scheme名の変更方法

# はじめに
iOSのアプリ開発を進めているうちに、途中でプロジェクト名を変更したくなりました。
ネットに落ちている記事である程度プロジェクト名を変更できたものの、
Scheme名の部分のみネットの情報が不足しており、変更に時間がかかりました。
上記の経緯から、本記事にScheme名の変更方法についてまとめることにしました。
誰かの参考になればと思います。

# 変更方法
Scheme名を変更する手順は以下の通りです。

### 1. Schemeの管理
下記画像の通り、「Manage Schemes…」を選択します。
※この例では、「Rakucode」から「Simplebook」に名前を変更したい想定です。

![スクリーンショット 2024-08-04 22.23.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/204266/d91656ab-8cb6-46d1-0d1e-8e267df6430e.png)

![スクリーンショット 2024-08-04 22.24.08.png](http

元記事を表示

完全未経験からiOSエンジニアを目指してみた

こんにちは
今までエンジニアとは無縁の人生を送ってきたかつ理系でも文系でも無い自分がiOSエンジニアを目指すようになって普段からしている事などまとめます。
何より現在は初歩の初歩状態なのでこの初心者手前の状態を記録することに何か将来意味があるのではと思ったので。

何故急にエンジニアに方向転換を決めたのか?
趣味です。

何故iOSエンジニアにしたのか?
元々Appleのオタクをしていたから。 つまり好きだから。  以上

動機はこんなもんです。軽くていいの。それで十分です。面接の時はもう少し話すかな…でも好きとか楽しいに勝る動機なんか存在しません。

さて、今の時代エンジニアを目指すにあたって便利な学習ツールが数多く溢れてます。
chatGPT Udemy Amazonで売ってる書籍 YouTube Apple Developer Document ネットに落ちてる様々な記事など。 これらをフル活用して自分は日々勉強してます。

chatGPT-4oについて少し語ろうと思います。
このツールが優秀すぎてこれからエンジニアをやろうと考えてる方も簡単になれますみたいなのも言われてる

元記事を表示

【iOS】AdMobでバナー広告を表示する流れ(SwiftUI)

## 概要
個人開発アプリで初めてバナー広告を表示してみました。
その時の流れをメモとして残します。

(余談)このアプリに広告を入れた時のメモです。
https://apps.apple.com/jp/app/hit-blow-app/id6587553399
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469133/18c5608e-b9de-3541-928b-7ab6a9c84019.png)](https://apps.apple.com/jp/app/hit-blow-app/id6587553399
)

## 本題
### AdMobアカウントの作成
https://support.google.com/admob/answer/7356219?hl=ja&visit_id=638582155447511477-2789080356&rd=1

お支払い情報なども入力。

### AdMobにアプリを登録
https://support.google.com/adm

元記事を表示

SwiftとDartの変数、定数宣言、型推論の違い

母語がSwiftとなっているので、メモ

### SwiftとDart比較
Swift
“`swift
import Foundation

// 変数の宣言
var myVariable = 42
myVariable = 50

// 定数の宣言
let myConstant = 42

// 型推論による変数の宣言
let inferredInt = 42 // inferredIntはInt型
let inferredDouble = 3.14 // inferredDoubleはDouble型
let inferredString = “Hello” // inferredStringはString型

// 明示的な型宣言した定数
let explicitInt: Int = 42
let explicitDouble: Double = 3.14
let explicitString: String = “Hello”

// 明示的な型宣言した変数
var name: String = “John”
var age: Int = 30
va

元記事を表示

Flutter で Android のナビゲーションホームボタンと同じようにホーム画面に戻る処理を実装する

# なにこれ

– 戻るボタンを無効化したけど、戻るボタンで色々処理をさせたい時があった
– その時、前画面に戻るだけでなく、最上位の画面なら pop せずにアプリをバックグラウンドに行かせて、ホーム画面に行く処理を実装したいと思った
– 以前書いた戻るボタン無効化の記事は以下

https://qiita.com/su3-hokkaido/items/48f5d8bf8b5a487f691f

# 解決方法
### `move_to_background` パッケージをインストールする

パッケージ公式ガイドはこちら

https://pub.dev/packages/move_to_background

インストールコマンドはこちら
“`dart
flutter pub add move_to_background
“`

yaml に直接書く場合はこちら(バージョンは後述の公式ページにあるバージョンを参照してください)
“`pubspec.yaml
dependencies:
move_to_background: ^1.0.2
“`

### onPopInvo

元記事を表示

【Swift】CustomStringConvertibleについて調べてみた

アップルさんのサンプルコードを調べているときに、CustomStringConvertibleというProtocolを使っていました。
見たことあるけどどういうものだったかな? と疑問に感じたので、調べてみました。

## CustomStringConvertibleとは

> Types that conform to the `CustomStringConvertible` protocol can provide their own representation to be used when converting an instance to a string. The `String(describing:)`initializer is the preferred way to convert an instance of _any_ type to a string. If the passed instance conforms to `CustomStringConvertible`, the `String(describing:)` initializer

元記事を表示

FlutterとFlaskを使用したTimeeみたいなパートタイム求人アプリの作成

### はじめに

こんにちは!今回は、FlutterとFlaskを使用して、ユーザーが1時間または2時間のパートタイム求人に応募でき、管理者が新しい求人を投稿できるアプリを作成する方法をご紹介します。

APIはローカルホストのポート8000で動作すると仮定します。

### Flutterプロジェクトのセットアップ

まず、新しいFlutterプロジェクトを作成しましょう。

“`bash
flutter create part_time_job_app
cd part_time_job_app
“`

### APIとの通信

FlutterアプリからFlask APIと通信するために、`http`パッケージを使用します。`pubspec.yaml`に以下を追加してください:

“`yaml
dependencies:
http: ^0.13.3
“`

### 求人一覧の表示

FlaskAPIから求人一覧を取得し、表示する機能を実装します。

“`dart
import ‘package:flutter/material.dart’;
import ‘pac

元記事を表示

Flutterで作る本格的なPongゲーム!スコア表示付き

## Flutterでゲームを作ろう!

こんにちは、Flutter開発者の皆さん!今回は、Flutterを使って本格的なPongゲームを作成する方法を詳しく解説します。スマートフォン向けに最適化され、右上にスコアを表示する機能も実装します。さあ、一緩に作っていきましょう!

### 1. プロジェクトのセットアップ

まずは、新しいFlutterプロジェクトを作成し、必要なパッケージをインストールします。

“`bash
flutter create pong_game
cd pong_game
flutter pub add flame
“`

### 2. main.dartファイルの作成

`lib/main.dart`ファイルを以下のように編集します。

“`dart
import ‘package:flame/game.dart’;
import ‘package:flutter/material.dart’;
import ‘pong_game.dart’;

void main() {
runApp(
MaterialApp(
home

元記事を表示

Flutter中級者へのステップアップガイド:実践的なテクニックと応用

# Flutter中級者へのステップアップガイド:実践的なテクニックと応用

こんにちは、Flutterファンの皆さん![前回の初心者向けガイド](https://qiita.com/negisys/items/1b7ba800908929adfdd2)に続いて、今回はもう一歩踏み込んだ内容をお届けします。Flutterの基本を押さえた方々向けに、より実践的なテクニックと応用例を紹介していきます。長い記事になりますが、じっくりと取り組んでいけば、きっとFlutterマスターへの道が開けるはずです!

## 1. 高度なウィジェットの活用

Flutterには、基本的なウィジェット以外にも多くの高度なウィジェットが用意されています。これらを使いこなすことで、より洗練されたUIを作成できます。

### 1.1 CustomPainter

`CustomPainter`を使用すると、カスタムの図形やグラフィックスを描画できます。

“`dart
class MyPainter extends CustomPainter {
@override
void paint(Canvas

元記事を表示

SwiftUIでボイスメモの録音ボタンをつくる

## はじめに

ランダムでエフェクトがかかるレコーダーアプリを個人開発したときに、iPhone純正アプリのボイスメモ録音ボタンを再現したことがあるのでメモ

https://apps.apple.com/us/app/randomeffectrecorder/id6449289485

## できるもの
ライト、ダークモードに対応してます。

ボタンをタップして録音中は中央の赤い円が四角くなります。

  • OTHERカテゴリの最新記事