タグ

iOSに関するmacneko-ayuのブックマーク (82)

  • ZOZOTOWN iOS にスナップショットテストを導入して開発速度を劇的に向上させた話 - ZOZO TECH BLOG

    こんにちは! 開発部の@ahiru_starrrです。 稿では、ZOZOTOWN iOSにSnapshotTestを導入したのでその経緯や導入方法、導入するメリット・デメリット、どんな場面で役に立つのかなどについて書いていきます。 SnapshotTestがどのようなものかよく分からない方や導入を検討している方々のお役に立てれば幸いです。 SnapshotTestとは SnapshotTest導入の背景 2つの課題 エンジニア ↔︎ デザイナー間のコミュニケーションコスト レガシーからモダンへの取り組み 導入方法 環境変数を設定 実装方法 テストクラスを作成 recordModeを設定 テストコードを実装 フォルダ名を設定 ファイル名を設定 stubの設定 FBSnapshotVerifyView SnapshotTestのユースケース リファレンス画像を生成 SnapshotTest!

    ZOZOTOWN iOS にスナップショットテストを導入して開発速度を劇的に向上させた話 - ZOZO TECH BLOG
    macneko-ayu
    macneko-ayu 2020/01/27
    新しいOSのSDKでビルドするときに使いたいなって思うやつ
  • XcodeでStaticライブラリを別のStaticライブラリに依存させる方法 - Qiita

    Staticライブラリを別のStaticライブラリに依存させようとしてつまずきました。ツイッターでつぶやいたところ、アドバイスをいただくことができて無事解決したので、その解決方法を共有します。 ※説明の都合上、Twitter上のやりとりそのままではありません。 背景(やりたいこと) 話をわかりやすくするために単純な例で説明します。 登場人物は次の3つです。これらをそれぞれ別プロジェクトとして作成します。 App(アプリ) Logger(Staticライブラリ) Repository(Staticライブラリ) ここで、AppはLoggerの機能も使うし、Repositoryの機能も使います。また、Repositoryはその実装の中でLoggerの機能を使います。 具体的なソースコードはこんな感じ(内容に意味がないのには目を瞑ってください)。 import UIKit import Logge

    XcodeでStaticライブラリを別のStaticライブラリに依存させる方法 - Qiita
  • iOSのページングの仕組みを紐解いてフロー図にしてみた - Qiita

    iOSのUIPageViewControllerは思ったより有能だったという話です。 ただ「どう有能なのか」を理解するのに自分は思ったより時間がかかったので、まとめです。 ※UIPageViewControllerはこんな感じのもの。 前提 UIScrollViewは今回使ってません。 ボタン等でPageViewを遷移させる場合は今回の話対象外です。UIPageViewControllerDataSourceのメソッドが呼ばれないので。 開発環境 Xcode 10.1 Swift 4.2 通常のUIPageViewControllerの実装方法 4枚のViewControllerをUIPageViewControllerで切り替えできるように実装する場合、 下記のような感じのコードになると思います。サンプルです。 Sample.storyboard 上に SamplePageViewCon

    iOSのページングの仕組みを紐解いてフロー図にしてみた - Qiita
    macneko-ayu
    macneko-ayu 2019/11/13
    なるほど、delegateのほうでやるのね “AfterPage or BeforePageのタイミングに追加するのはオススメしません。その代わり、UIPageViewControllerDelegateに別の便利メソッドがあります。”
  • Go言語でiOS開発ツールを作成する:Localizable.stringsファイルからenumを生成する - Qiita

    はじめに Go言語でiOS開発ツールを作成する というモチベーションは、まずGo言語が自分にとってとても興味深い言語であるいうところから始まっています。もともとLinux上でC言語を使って組込製品などを作ってきた人間にとっては、Go言語はすごく分かりやすくて便利な言語だという感触がありました。しかも高速(らしい)です。 実は以前にSwiftMacで動くiOS開発ツールは作った経験があるのですが、今回Go言語でチャレンジした感想は、Swiftに比べてもGo言語はとても優れているということです。(特にMacOSLinuxで動くツールを作成する場合) 目標

    Go言語でiOS開発ツールを作成する:Localizable.stringsファイルからenumを生成する - Qiita
  • iOS 13にしかないフレームワークを使用したアプリをiOS 12以下でも動くようにするには - 24/7 twenty-four seven

    SwiftUI、Combile、RealityKitなどiOS 13以上の環境にしか存在しないフレームワークを使用するアプリをiOS 12以下の環境で実行すると、その機能を実際に呼び出さないようにしていたとしても、起動時にダイナミックリンクに失敗してクラッシュしてしまいます。 dyld: Library not loaded: /System/Library/Frameworks/RealityKit.framework/RealityKit Referenced from: /Users/katsumi/Library/Developer/CoreSimulator/Devices/7D73BD02-5C30-4723-9023-4D19BCDAE1AA/data/Containers/Bundle/Application/A9E00179-1DDD-4051-9207-7CC6C9DC

    iOS 13にしかないフレームワークを使用したアプリをiOS 12以下でも動くようにするには - 24/7 twenty-four seven
  • Go MobileでAndroid/iOSの共通ロジックをライブラリ化してみる - Qiita

    この記事は、Recruit Engineers Advent Calendar 2018 24日目の記事です。 はじめに Androidアプリの開発をしている@sasakissaです。 最近Go言語を勉強しているのですが、GoAndroidやiOSの開発ができるmobileというパッケージが用意されていることを知りました。 記事では、gomobileの概要を簡単にまとめて、お試しでアプリを作成してみた感想を書きます。 今回実装したコードはこちらです。 https://github.com/sasakissa/GithubRepository-GoMobile !image.png https://github.com/golang/mobile Go MobileはGoAndroid/iOSアプリを開発するための、サポートライブラリとビルドツールが提供されたパッケージです。まだExp

    Go MobileでAndroid/iOSの共通ロジックをライブラリ化してみる - Qiita
  • [iOS]KeyPathを利用してRxSwiftベースのViewModelを刷新する - Qiita

    2019/12/16追記 記事作成は2019年4月頃に行いましたがそこから半年以上が経ち、Unioも機能が増えたりしたので記事を更新しました。 また、Unioについての登壇なども行っておりますので、こちらの資料も参考になりましたら幸いです。 はじめに RxSwiftを用いたMVVMでアプリケーションを開発する際、ViewModelが以下のような実装になりやすくはないでしょうか。 ①公開用の入力メソッドと、内部でsubscribeするためのRelayの2つを定義している ②内部状態を公開するためのObservableと、値自体を公開するためのpropertyの2つを定義している ③内部状態なのか、入力のRelayなのかが一見わかりにくい final class SearchViewModel { let repositories: Observable<[Repository]> let e

    [iOS]KeyPathを利用してRxSwiftベースのViewModelを刷新する - Qiita
    macneko-ayu
    macneko-ayu 2019/03/24
    おお、面白そう
  • iOS10とiOS11で比較するUIStackViewのhiddenとConstraintエラー - Takahiro Octopress Blog

    はじめに この記事はiOS2 Advent Calendar 2017の10日目の記事です。 記事では今年発表されたiOS11で改善された UIStackView 周りの Constraint 対応について紹介したいと思います。 UIStackView はiOS8以前に、開発者が AutoLayout を駆使して View と View 間のマージンやパディングを設定していた状況を一変させました。 そんな便利な存在である一方で使い方に慣れるまでに時間がかかったり、なぜかうまくいかないと悩んだりすることもしばしばあることと思います。 その中でも厄介だったのが、 UIStackView の子要素に UIStackView があり、元の UIStackView を非表示にすると Constraint エラーが発生するパターンです。 iOS10で発生するConstraintエラー 例えば、下図の

    macneko-ayu
    macneko-ayu 2019/03/20
    なるほど。UIStackViewをあまり使わないんだよな
  • [iOS] fastlaneを導入する手順について | DevelopersIO

    はじめに こんにちは。モバイルアプリサービス部の平屋です。 前回の記事「アプリをAd Hoc配布可能にする手順について」に引き続き、iOSアプリの配布に関する手順を紹介します。 記事では、fastlaneを導入する手順を紹介します。 検証環境 macOS Mojave 10.14 Xcode Version 10.0 (10A255) CocoaPods 1.5.3 fastlane 2.111.0 前提条件 fastlaneはXcodeプロジェクトのディレクトリ内にインストールする 目次 fastlaneを追加する fastlaneをセットアップする Fastfile内にレーンを追加する 動作を確認する fastlaneを追加する 前回の記事で作成したGemfileにgem 'fastlane'という1行を追加します。 # Gemfile source 'https://rubygem

    [iOS] fastlaneを導入する手順について | DevelopersIO
    macneko-ayu
    macneko-ayu 2019/03/19
    覚えなければ
  • 受託開発での iOS アプリプロジェクト新規作成プラクティス(下編:Bitrise 編) - Qiita

    前書き 記事は受託開発前提で書いております。そのため、受託開発における特殊な要件がいくつかあります。もちろん通常の開発にも通用する部分は多いですが、どこまで流用するかは読者の皆さん自身にご判断をゆだねます。 記事のサンプルとして使われたプロジェクトのバイナリデプロイ1はこちらの GitHub リリースページ から確認できます。 記事は下編:Bitrise 編で、CI 運用について説明します。Xcode プロジェクトの作成については上編をご覧ください。 要件 基開発環境は Xcode を利用します。 基 CI/CD 環境は Bitrise を利用します。なお記事も Bitrise アカウントを所有している前提で書かれており、登録についての説明は割愛します。 動作環境は社内開発環境(Development)、納品先検証環境(Staging)と番環境(Production)の三つが

    受託開発での iOS アプリプロジェクト新規作成プラクティス(下編:Bitrise 編) - Qiita
  • 受託開発での iOS アプリプロジェクト新規作成プラクティス(上編:Xcode 編) - Qiita

    前書き 記事は受託開発前提で書いております。そのため、受託開発における特殊な要件がいくつかあります。もちろん通常の開発にも通用する部分は多いですが、どこまで流用するかは読者の皆さん自身にご判断をゆだねます。 記事のサンプルとして使われたプロジェクトはこちらの GitHub リポジトリーからダウンロードできます。 記事は上編:Xcode 編で、プロジェクトの作成を説明します。CI 運用については下編をご覧ください。 要件 基開発環境は Xcode を利用します。 ライブラリーの管理は Carthage を優先に利用し、Carthage で対応できないものは CocoaPods を利用します。 開発ツールの管理は基 Homebrew を優先に利用し、Homebrew が利用できないものは Bundler や Mint 等を利用します。 動作環境は社内開発環境(Development)

    受託開発での iOS アプリプロジェクト新規作成プラクティス(上編:Xcode 編) - Qiita
  • VIPERアーキテクチャでプロダクトのiOSアプリを1から作ったまとめ - Qiita

    仕事でiOSアプリをVIPERアーキテクチャで1から書く機会があり、せっかくなのでその知見をまとめることにしました。 なぜ採用したか?実際作ってみてどうだったか?まで、赤裸々にまとめたのでアークテクチャ選定の参考になれば幸いです。 VIPERに関してはPotatotipsでも発表した資料もあるのでこちらもご覧ください。 (サンプルアプリは、TwitterクライアントにしたけどGitHubクライアントに書き直すかも) スライド サンプルアプリ https://github.com/hirothings/ViperTwitterClient VIPERとは? 各レイヤーの頭文字の組み合わせで VIPER と呼びます。 View Interactor Presenter Entity Router 最大の特徴は、クリーンアーキテクチャをベースにしたiOSアプリのために作られたアーキテクチャである

    VIPERアーキテクチャでプロダクトのiOSアプリを1から作ったまとめ - Qiita
    macneko-ayu
    macneko-ayu 2018/12/25
    わかりやすかった。サンプルコードも読んでみよう
  • iOSエンジニア以外にも知ってほしいiOSアプリ用語-UI部品編- #Zaim|akatsuki174

    なぜこの記事を書くのかこんにちは。Zaim で iOS アプリ開発をしている@akatsuki174です。 iOS アプリの話をする時、iOS エンジニアが何気なく使う専門用語があります。名称とモノが結びつくだけでも会話がスムーズになると思うので、「iOS エンジニア以外の人もこれを覚えておくと良いかも!」と思うものをまとめました。部品名だけでなく説明も書いているので、iOS の UI をもっと理解したい方は、こちらも頭に入れておくと良いと思います。 注: ・一部、iOS アプリに限らず Web アプリなどでも使用される用語も載せましたが、基、iOS アプリの文脈で書いています。 ・重要度は、筆者が勝手に①頻出度合い、②iOS アプリを語る上で知っておいてほしい度合いを判断して割り振ったものです。 ・ほとんどHuman Interface Guidelines(以下 HIG)から情報を引

    iOSエンジニア以外にも知ってほしいiOSアプリ用語-UI部品編- #Zaim|akatsuki174
    macneko-ayu
    macneko-ayu 2018/10/18
    正式名称迷うことがあるのでありがたい
  • iOSに向き合い続けた10年。岸川克己がSpreadsheetViewで埋めたかった「iOSに不足していたもの」 - エンジニアHub|若手Webエンジニアのキャリアを考える!

    iOSに向き合い続けた10年。岸川克己がSpreadsheetViewで埋めたかった「iOSに不足していたもの」 KeychainAccessやSpreadsheetViewなど、iOSアプリ開発で広く使用されるOSSを送り出した岸川克己さん。iOS、Swiftの世界で先駆けと評される岸川さんに、ソフトウェア開発の裏側をお聞きしました。 職業、iOSアプリ開発者。いまでこそ、こうした肩書は珍しくありませんが、10年以上前から、iOSに向き合い続けてきたエンジニアがいます。今回の主人公である岸川克己(きしかわ・かつみ/ @k_katsumi )さんは、まさに“iOSの第一人者”と呼ぶにふさわしい人物です。 2008年9月、日iPhoneが発売されるやすぐにアプリを送り出し、以降、岸川さんはiOSアプリを開発し続けてきました。エンジニアとしての高いスキルが評価され、これまで数多くの有名企業

    iOSに向き合い続けた10年。岸川克己がSpreadsheetViewで埋めたかった「iOSに不足していたもの」 - エンジニアHub|若手Webエンジニアのキャリアを考える!
  • CoreLocation 領域の観測を嗜む - Qiita

    1.はじめに 前回の記事では簡単なアプリを作ってiBeaconに触れてみました。(レンジング) 今回は、CoreLocationフレームワークの領域の観測について簡単に触れてみたいと思います。 稿範囲:CoreLocationフレームワークの領域観測に触れてみる 対象読者:Xcodeの基を理解している 開発環境:OS X Mavericks v10.9.4 IDE:Xcode Ver 5.1.1 検証端末:iPhone 5S (iOS:7.1.2) Beacon機器:MyBeacon Pro (MB004) 2.領域観測 CoreLocationフレームワークでは、特定の領域へのユーザー(デバイス)の進入、及び、退出を検知するために「地理的領域の観測」と「Beacon領域の観測」という二つの方法を用意しています。 1. 地理的領域の観測 地理的領域とは特定の緯度、経度、そして、半径によ

    CoreLocation 領域の観測を嗜む - Qiita
  • iOSアプリへFluxアーキテクチャを導入! そのメリットとは

    freeeの価値基準の一つである、ユーザーにとって「質的(マジ)で価値ある」ものを届けるということ。連載ではそれに向かって、日々挑戦を続ける開発現場の事例をお伝えします。2回目となる記事では、freeeにおけるiOSアプリへのFluxアーキテクチャ導入事例を紹介します。Fluxの概要やiOSアプリに取り入れた背景、iOSアプリでFluxを使うことの利点を、具体的なコードをお見せしながらお伝えします。 対象読者 スケールしやすいアプリの設計に興味のあるiOSエンジニアの方を対象にしています。 Fluxの概要 Webフロントエンドの世界で、今ではよく利用されているFluxですが、モバイルアプリ界隈では現状そこまで広く認知されていないと思います。そこで、まずは簡単にFluxの概要を整理します。 Flux考案の背景 Fluxは「アプリケーションのコードベースが大きくなるにつれて極端に複雑化し

    iOSアプリへFluxアーキテクチャを導入! そのメリットとは
  • Flutterの効率良い学び方

    “Spider-Man leaning on concrete brick while reading book” by Raj Eiamworakul on Unsplash 数ヶ月間Flutterに関する大量のインプットを行い、単純なアプリならサクッと、複雑なアプリでも都度調べながらなら慣れているiOSネイティブアプリ開発と比べても遜色ないレベルのものを普通に作れるであろう自信が出てきました。記事では、自身の過去の取り組みを踏まえてFlutterを学ぶにはこういう道筋が良いだろうということを書いていきます。 まずはとにかく公式ドキュメント

    Flutterの効率良い学び方
    macneko-ayu
    macneko-ayu 2018/09/10
    助かる
  • fastlane を利用した iOS 継続的デリバリーの実践 | Classi株式会社's Blog

    Classi で iOS エンジニアをしている @star__hoshi と申します。 Classi 社には iOS エンジニアが 1 人しかいないのにアプリが 3 つあります。 iOS 開発では UDID の追加や証明書の更新など、非常に多くのちょっとしたタスクがあり、このようなアプリ3つ分の雑務ばかりしていれば来やるべきことができません。 そのため、もろもろの雑務を fastlane の match, gym, deliver などで自動化しました。実際の開発フローの流れと、何をどう自動化したのかコードを含め書いていきます。 この記事では詳しい fastlane の使い方を述べたものではなく、 fastlane を使うことによる効能などの概念的な話が中心になります。fastlane の使い方に関しては docs.fastlane.tools という素晴らしいドキュメントがありますので

    fastlane を利用した iOS 継続的デリバリーの実践 | Classi株式会社's Blog
  • Scalable bulleted lists with UILabel or UITextView

    Want to keep up to date? Sign up to my free newsletter which will give you exclusive updates on all of my projects along with early access to future apps. I’ve recently been implementing auto-renewable subscriptions for a client and came across the need to create a bulleted list of notes1. There are numerous tutorials available that show how you can do this but all of the ones I found had a flaw o

    Scalable bulleted lists with UILabel or UITextView
    macneko-ayu
    macneko-ayu 2018/08/18
    Illustratorの箇条書きよりきれいにできるのではないかという、iOSでの箇条書き
  • fastlane match でiOSアプリ開発者を「証明書管理の苦しみ」から解放せよ!

    はじめまして、ビズリーチ・キャンパスでiOSアプリエンジニアをやっている河内です。 河内と書いてコウチと読みます。 今回は、iOSアプリ開発で誰もが苦しめられる証明書関連についてお話したいと思います。 はじめに 私は2012年にビズリーチに入社しました。 当時はまだ社員は100人もいなくて、アプリは1つもありませんでした。 それからビズリーチで初めてアプリを開発する段階から私は関わってきたのですが、今となっては多くの事業が立ち上がり、アプリも増えました。 現在はサービス(事業)ごとに開発チームが存在していて、そのうちアプリを持つチームが6つもあります。 iOSアプリを開発するためには、AppleのDeveloperページから証明書を作成する必要があります。 チームが増えて、これらを管理する手間が徐々に増えてきたところで、fastlane match (以下match)を導入して証明書管理の

    fastlane match でiOSアプリ開発者を「証明書管理の苦しみ」から解放せよ!
    macneko-ayu
    macneko-ayu 2018/07/31
    良さそう