- 1. iOSDC 2024 ノベルティボックス開封してみた
- 2. Flutter iOS Module xxx not found の対処法
- 3. WKWebViewで新しいウィンドウを開くリンクを外部ブラウザで処理する方法
- 4. TipKitを使ってアプリの機能のヒントを提示する
- 5. 【.NET MAUI】iOSウィジットの署名がおかしいのを修正する
- 6. PODの作り方(iPhoneアプリ制作)
- 7. プログラミングを行う上で意識していること4選
- 8. 話題のkotlin Multiplatformを使ってみた(環境構築~ビルドまで)
- 9. Tab Bar の上に AdMob バナー広告を表示する
- 10. iPhoneの実機からMacのlocalhostに接続する方法
- 11. iOSバーコードリーダーの読込範囲指定方法
- 12. [2024年]FlutterをiOS Simulatorでデバックがうまくいかなかった時の解決方法
- 13. 【XCode】Scheme名の変更方法
- 14. 完全未経験からiOSエンジニアを目指してみた
- 15. 【iOS】AdMobでバナー広告を表示する流れ(SwiftUI)
- 16. SwiftとDartの変数、定数宣言、型推論の違い
- 17. Flutter で Android のナビゲーションホームボタンと同じようにホーム画面に戻る処理を実装する
- 18. 【Swift】CustomStringConvertibleについて調べてみた
- 19. FlutterとFlaskを使用したTimeeみたいなパートタイム求人アプリの作成
- 20. Flutterで作る本格的なPongゲーム!スコア表示付き
iOSDC 2024 ノベルティボックス開封してみた
# はじめに
本記事では、iOSDC 2024のノベルティボックスに入っていたノベルティについて紹介していきます。なぜ紹介するのかというと、
昨年自分がノベルティボックス付きのチケット購入ができず、
ノベルティボックスにはどういったものが入っていたのか気になったといったことがあったためです。今年ノベルティボックス付きのチケットが購入できなかった人向けに記事投稿します。
# iOSDCとは
そもそもiOSDCとは何かについて、言及しておこうと思います。
引用になりますが、下記に記載します。> iOSDC Japan 2024はiOS関連技術をコアのテーマとしたソフトウェア技術者のためのカンファレンスです。今年もリアル会場とオンライン配信のハイブリッド開催を予定しています。
日本中、世界中から公募した知的好奇心を刺激するトークの他にも、パンフレットに掲載された技術記事、自分のペースでゆっくり参加できるポスターセッション、気持ちを盛り上げるネイルアートやフェイスペインティング、オープニングパーティ & 懇親会などなど、初心者から上級者まで楽しめるコンテンツがみなさんを待っていま
Flutter iOS Module xxx not found の対処法
Flutter iOS でビルドすると「Module xxx not found」とうエラーが出ます。
何回もハマっています。そのいくつかの対処法をまとめます。# ① flutter clean を試す
いったんこれを試しましょう。
flutter clean .
flutter pub get# ② XCodeで開いてみる
Runner.xcodeproj ではなく Runner.xcworkspace なのがポイント。# ③ pod install
ios/Podfile の2行目のバージョンを変えてみます。platform :ios, ‘14.0’ ← このコメント#を外してバージョンを色々変える
Podfile を更新
cd ios
pod install ← Podfile.lockを参照
pod update ← Podfile.lockも更新# ここで理由を整理してみよう
Pods/Target Support Files 以下にあるモジュールを
参照できない、もしくは、動かないのが原因です。# ④ パスが違う
XcodeのRun
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