Swiftコードを直接ビルドしてAndroidアプリを作る「Native Swift toolchain and driver for Android」、Skipがテクノロジープレビュー公開 SwiftコードでiOSアプリとAndroidアプリを開発できるツール「Skip」を提供しているGlimpse I/Oは、Skipツールの新機能として、SwiftコードをビルドしてAndroidアプリを作るツールチェーン「Native Swift toolchain and driver for Android」のテクノロジープレビューを公開しました。 下記はSkipの開発者であるAbe White氏のポスト。 The Skip team is thrilled to announce our first tech preview of a *native* Swift toolchain for A
こんにちは! 引っ越しのために本棚をひっくり返していたら、エンジニアなりたての頃の勉強ノートが出てきました。 今となっては全く役に立たないノートなのに、なんとなく捨てられない とと です。 毎日頭が沸騰するんじゃないかと思うくらい頭をフル回転させて、人生で一番カロリーを使っていたのか、あのときほど減量に成功した日はいまだかつてありません。 (プログライミングダイエットと呼んでいます ※効果には個人差があります) Unitテスト書いてますか?GitHub Copilot使ってますか? さて、わたしは普段、STORES 決済 アプリ/SDK を開発するチームでiOSエンジニアをしています。 この2つのプロジェクトの現在のUnitテストのカバレッジは以下の通りとなっています。 アプリ: 33.15% SDK: 27.98% 結構頑張っている方だと思うのですが、どうでしょうか? STORES 決済
2年半近く趣味として個人開発してきたiOS・iPadOS向けの日本語キーボードアプリ「azooKey」をオープンソース化しました。ライセンスはMIT Licenseです。 azooKeyは2年前からApp Storeで無料で公開し、開発を続けてきました。日本語対応のiOS向けキーボードアプリには、Simeji、Flickなど多くの先輩がいますが、標準キーボード志向で高機能なOSSとしては初めてのものではないかと思います。 技術的な特徴 azooKeyの技術的特徴としては、変換エンジンの独自実装、ライブ変換のサポート、独自に調整した辞書、強力なカスタマイズ機能などがあります。 IME開発の特色は幅広い技術的課題を扱えることにあります。競プロ的なアルゴリズムとデータ構造の問題もあればNLP的な話やGUIのデザインの問題もあり、めっちゃ楽しいです。 なお、azooKeyは全てSwiftで実装され
どうも、ねこきち(@nekokichi1_yos2)です。 今開いている画面を全て閉じて、ホーム画面(もしくは初期画面)へ1発で戻りたい場合があります。 かといって、 dismissを多用する → 処理の流れが複雑に ホーム画面に遷移する → 画面が生成され、処理が圧迫される の問題点が。 そこで、生成された画面を全て閉じて、最初の画面(ホーム画面)に戻る方法を書いていきます。 解説 RootViewController presentingViewController unWindSegue 結果 ソースコード 参考 解説 方法は RootViewController presentingViewController unWindSegue を使った3つです。 RootViewController RootViewControllerはアプリ画面の初期画面(アプリ起動時、最初に表示される
はじめに 普段はUIPageViewControllerを使うことが多かったですが、 UICollectionViewでもイケそうでした。👍 実装 ざっくりとした流れ データソースの取得 Viewクラスへの反映 アクションのハンドリング データソースの取得 まずは、チュートリアルページに表示する情報を取得するメソッドを用意します。 今回のサンプルでは、UICollectionViewのデータソースになる情報に関してはプロジェクト内に用意したjsonファイルを読み込んで、Codableでパースしています。 static func requestTutorialInfo() -> [Infomation] { guard let jsonFilePath = Bundle.main.path(forResource: "tutorial_Info", ofType: "json") else
クロージャーとは 一言でいうと名前がない関数 宣言したスコープ内でしか使えない関数 何が出来るの? 関数そのものを型に指定できる 関数自体をインスタンス化できる 変数や引数に関数の戻り値を直接に代入できる こんな時に使います グローバル変数の宣言をなるべく減らしたい場合 関数の実行結果を次の処理で続けて使用する関数を作成したい場合 基本フォーマット 関数名はないので、引数と戻り値、in の後に処理を記述。引数や戻り値がない場合も可能。
こんにちは、@yoheiMuneです。 今日はSwiftで、ViewController間の遷移方法をブログに書きたいと思います。 目次 ViewController間で遷移する(基本編) ViewController間で遷移するには、以下のように実装します(以下例ではviewDidAppearで遷移していますが、ボタンアクション時などでも同様に書けます)。 import UIKit class ViewController: UIViewController { override func viewDidAppear(animated: Bool) { // 次の遷移先のViewControllerインスタンスを生成する let vc = NextViewController() // presentViewControllerメソッドで遷移する // ここで、animatedをtrue
コンピューテッド・プロパティ(Computed Property)を使う。 コンピューテッド・プロパティ(Computed Property)は ゲッターメソッドとセッターメソッドと呼ばれる2つのメソッドを提供するプロパティのこと。 使い方の例 Itemクラスにprice(税抜き価格)とintaxPrice(税込み価格)があります。 intaxPriceがComputedプロパティとなっており、 intaxPriceを取得する際にgetメソッドが呼ばれ、 値をセットする際に、setメソッドが呼ばれます。 class Item { // 税抜き価格 var price:Double = 0 // 税込み価格 var intaxPrice:Double { // 値を取得するときに呼ばれる。 get{ return self.price*1.08 } // 値がセットされるときに呼ばれる。 s
社内でiOSアプリ開発初心者に、 StoryboardをViewController単位で分けた場合の画面遷移、値渡し方法の説明時サンプルとして残しておく 環境 Xcode: 11.3.1 Swift5 ・遷移先のUIViewController、StoryBoardを作成する UIViewControllerを作成 プロジェクトナビケータを右クリックし、New Fileを選択 Cocoa Touch Classを選択 Class: NextViewController、 Subclass of: UIViewController、 Also Create XIB File: チェック外す、 ___Language:___Swift Nextを選択 そのままCreateでOK StoryBoardを作成 プロジェクトナビケータを右クリックし、New Fileを選択 Storyboardを選
Kotlin / Swift での Unicode の扱いまとめ (見た目上の文字数カウント, UTF-8, UTF-16, BOM, 正規化, 異体字セレクタ)AndroidiOSKotlinUnicodeSwift Kotlin と Swift での見た目上の文字数カウント実装を中心に、Unicode について知っておくべき知識をまとめます。 また、モバイルアプリで入力文字数のカウントや入力文字数の上限をどのように扱うかは以下の別の記事にまとめました。 文字数カウント まずは、文字数カウントが難しい例として絵文字と異体字セレクタ表現の例を挙げます。詳しい説明はこの記事の後半を確認してください。 絵文字 🧑🦰 の文字数について確認します。🧑🦰 は以下の Unicode で構成されています。 文字 Code point UTF-8 表現 UTF-16 表現 Descriptio
はじめに 本記事は Swift/Kotlin愛好会 Advent Calendar 2021 の17日目の記事です。 空いていたので埋めました。 「依存性逆転の原則」と「依存性の注入」を完全に理解したので説明します。 「依存性逆転の原則(DIP)」とは? 英語で「Dependency Inversion Principle」といい、「DIP」と略すことが多いです。 SOLID の5原則の1つです。 従来のレイヤーパターン 例えば MVP アーキテクチャのViewとPresenterで考えてみます。 ViewとPresenterの間には以下の特徴があります。 View(UI)はPresenterのことを知るべきではない PresenterはViewからメッセージを受け取り、それに基づいて処理を行い、Viewに反映する これは「ViewはPresenterに依存せず、PresenterはVie
残念ながら、そう言ったこと専用のメソッドはSwiftの標準ライブラリにも、String型のFoundation拡張の中にも見つかりません。 自分でカウントする方法 let str = "林檎を食べた。林檎は美味しかった。林檎が大好き" let word = "林檎" var count = 0 var nextRange = str.startIndex..<str.endIndex //最初は文字列全体から探す while let range = str.range(of: word, options: .caseInsensitive, range: nextRange) { //.caseInsensitiveで探す方が、lowercaseStringを作ってから探すより普通は早い count += 1 nextRange = range.upperBound..<str.endIn
タスクを優先順位付きで作成し、タスクを実行し、タスクをキャンセルします。 ユーザーが「集中モード」をオンにしたかどうかを把握する 位置情報ボタン (SwiftUI) SwiftUIを利用してリモート画像を読み込む (SwiftUI) Listリストの検索機能 (SwiftUI) リストセパレータを隠す (SwiftUI) リストにPull to Refresh(引っ張って更新)機能を追加 (SwiftUI) テキストフィールドのフォーカスを外す (SwiftUI) リストセルにスワイプアクションを追加する (SwiftUI) テキストビューでマークダウンを使用する (SwiftUI) 画面が表示されたらタスクを実行します (SwiftUI) タブビューにバッジ(未読メッセージカウンター)を追加 この記事は developer.apple.com 上で公開されている文書に基づいて書かれました
こんにちは! モバイルアプリサービス部の田中孝明です。 今回はXcode 8.1 + Swift 2.3の環境でReleaseビルドをかけるとアプリがDebug時には起きなかった場所でクラッシュするようになった問題にあたった時、急遽対策を行った内容を共有したいと思います。 経緯 Xcode 7.3 + Swift 2.1で作成されていたあるプロジェクトをiOS 10に対応するためにXcode 8.1とSwift 2.3に対応させていました。 Swift 3.0ではなく、Swift 2.3なのは3.0対応のライブラリがiOS 9以上が対象だったため、Deployment Target がiOS 8のプロジェクトは移行できなかった側面があります。 今回Releaseビルドを行って実機で確認したところ、Alamofireのエラーハンドリング処理でクラッシュするようになってしまいました。 Thre
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く