iOS

Appleのエンジニアに聞いた日頃の疑問とこれからの話 - オンライン開催のWWDC20まとめ

こんにちは。ZOZOTOWN部の荒井です。 先日WWDC20が開催され、今年も弊社iOSメンバーが参加してきました。Apple Siliconや各次世代OSなど面白い発表が目白押しでしたね。 カンファレンスの内容も非常に興味深いものでしたが、今年は諸般の事情を鑑みて、初の…

ZOZOMATのクロスプラットフォーム3D

ZOZOMATとは何でしょうか?オンラインで靴を購入する際に、サイズが合わないという問題を解決する仕組みです。1台のスマートフォンと紙製のZOZOMATだけで、正確に足のサイズを測れます。足をスキャンすると、高精度の3Dモデルが生成されます。最適なサイズの…

iOS 13から追加されたフルページのスクリーンショットの機能と対応方法の紹介

iOS

こんにちは! ZOZOTOWN部の遠藤です。 iOS 13がリリースされて半年が経ちましたね。iOS 13といえばダークモード機能が注目を浴びましたが、それ以外にもたくさんの新しい機能が追加されました。 本記事では新しく追加されたフルページのスクリーンショットに…

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

こんにちは! 開発部の@ahiru_starrrです。 本稿では、ZOZOTOWN iOSにSnapshotTestを導入したのでその経緯や導入方法、導入するメリット・デメリット、どんな場面で役に立つのかなどについて書いていきます。 SnapshotTestがどのようなものかよく分からない…

iPadOS新機能「Multiple Windows」をWEARに仮実装してみた

はじめに こんにちは。WEAR iOSチームの坂倉 (@isloop) です。 この間リリースされたiPadOSはかなり盛りだくさんの内容でしたね。 個人的には、1つのアプリで複数のウィンドウを開ける「Multiple Windows」機能が一番気になりました。 この記事では、WWDC 20…

ZOZOテクノロジーズのサマーインターンシップを公開!〜選考から実施内容まで〜

こんにちは、ZOZOTOWN iOSチームの荒井です。今回は9月に実施したZOZOテクノロジーズのサマーインターンシップについて紹介したいと思います。インターンシップを開催予定の方、ZOZOテクノロジーズのインターンシップに興味がある方の参考になれば幸いです。

知ったらアプリ開発も楽になる! iOSDC Japan 2019で得たiOS開発の課題と向き合い方

こんにちは! ZOZOTOWNやWEARのiOSアプリ開発をしている元と小野寺です。 先日、9/5から9/7まで3日間iOSDC Japan 2019が開催されました。今回ZOZOテクノロジーズでは12名のメンバーで参加し、弊社はスポンサーとして協賛しました。 この記事ではiOSDC Japan …

WWDC19参加レポート - UI Design Labのフィードバック公開とAltConf登壇の様子をお伝えします!

こんにちは! 開発部の名取と西山です。 今年のWWDCはSwiftUIをはじめ、Apple Developerの未来を変えそうなおもしろい発表が目白押しでした。 現地時間の2019/6/3-7にアメリカのカリフォルニア州サンノゼ、マッケンリーコンベンションセンターにて行われたWW…

ZOZOテクノロジーズの取り組みを大公開!try! Swift 2019 Tokyo 参加レポート

こんにちは、ZOZOTOWN事業部にてiOSエンジニアをしている名取です。 2019/3/21-22にベルサール渋谷ファーストで行われたSwift言語の技術カンファレンスtry! Swift 2019 Tokyoに参加してきました。 ZOZOテクノロジーズからはほぼ全員のiOSエンジニアが参加し…

カスタムコンポーネントを使用したUI実装について

こんにちは。iOS担当の遠藤です。 最近、私達のチームではUI実装をカスタムコンポーネントを使用して行うようにしました。今回はそのメリットと実装方法について紹介したいと思います。 はじめに 今までのUI実装では、カスタムビューごとにInterface Builder…

FlutterとFirebase ML Kitを使ってカンファレンス用デモアプリを作った話

DroidKaigiで展示したファッションチェックアプリについて こんにちは。ZOZOテクノロジーズ開発部山田(@yshogo87)です。 DroidKaigi 2019ではプラチナスポンサーとして、ブースを出展させていただきました。 DroidKaigi 2019 そのコンテンツとしてファッショ…

iOSで構築しているCIのWorkflow紹介

こんにちは。iOS担当の荒井です。 今回はiOSチームで構築しているCI/CDのWorkflowについて紹介します。 CI/CD環境 はじめに、ZOZOテクノロジーズのiOSチームがどのようなCI/CD環境を整えているかを簡単に説明します。ZOZOテクノロジーズではZOZOTOWNやWEAR、…

iOSアプリの多言語対応について

こんにちは。新事業創造部の荒井です。 今回はiOSアプリの多言語対応について紹介します。 はじめに 私は今までいくつかのiOSアプリを運営してきましたが、どのアプリも日本語のみのサポートでした。現在関わっているWEARでは、すでに多言語対応が進められて…

iOSアプリの継続課金コンテンツに無料トライアル機能を導入する方法

こんにちは! 最近暑いのでビール最高と感じている新事業創造部バックエンドエンジニアのりほやんです。 今回はAppleが提供しているお試し価格の機能のひとつである無料トライアル機能を紹介します。 お試し価格とは お試し価格とは自動更新の定期購読に対し…

CarthageでビルドしたフレームワークをGitにコミットせずに良さげに扱う

iOSチームの@hiragramです。 所属するプロジェクトでは依存管理にCarthageを使っていますが、Carthageの成果物である Carthage/ 以下をコミットするかどうかはよく議論になる話題かと思います。 私はコミットしない派なので、そのメリットを残しつつデメリッ…

大規模リファクタリングで痛感したSwiftのOptionalとの正しい付き合い方

iOSアプリチームの@hiragramです。 最近、ファーストリリース時からあった画面の大規模なリファクタリングを担当しました。 コードは遅かれ早かれ賞味期限が切れて少しずつ腐っていくものですが、その賞味期限を少しでも伸ばすために、普段コードを書く時にS…

大事故防止!iOSの自動更新購読型と消耗型の課金を共存させるときのサーバーサイドTipsまとめ

iOS

課金とPush通知攻略に邁進中のじょーです。 今回は、ひとつのアプリに自動更新購読型と消耗型を共存させたときのサーバーサイドで行うレシート検証のTipsを紹介します。 自動更新購読型課金のサーバーサイド実装について 自動更新購読型課金単体で実装する場…

Swift 4のUserDefaultsライブラリ: Default

VASILYのiOSエンジニアにこらすです。 今回のテックブログではiOS・macOS・watchOS・tvOSのUserDefaultsにユーザー設定などを保存するのに便利なラッパーライブラリ Default を作ったので紹介します。 github.com Defaultとは? Defaultは、Codableに準拠す…

iOSDC Japan 2017参加レポート

こんにちは。iOSエンジニアの遠藤です。 9/15〜17にかけiOSDC Japan 2017が開催され、VASILYでもiOSチーム全員で参加しました。 また、私はLTとしてShift_JISのURLデコードについて発表させていただきました。 以下、発表資料です。 speakerdeck.com M”e (@r…

アニメーションのイージングを自由に作る

iOSエンジニアの庄司です。最近Android開発をはじめて、Android Studioのコード補完力の高さに驚かされています。 iOS11のリリースが間近ですが、今回は最近開発したiOSアプリで実装したアニメーションについてご紹介します。 こんなものを作りました GitHub…

SwiftでLottieを使ってアニメーションを実装する

こんにちはフロントエンジニアの茨木です。一ヶ月ほど前からSwiftでiOSアプリ開発をやっています。iOS開発経験は浅いですが、Lottieというライブラリを使用し、いきなりアニメーションごりごりの画面を担当してみました。 LottieはAirbnb社が開発したライブ…

モダンなSwiftのExtensionについて - Targeted Extensions

VASILYのiOSエンジニアにこらすです。最近、Swift Evolutionに私の2つ目の提案がマージされました。 今回は、Swiftで型にExtensionを作る特殊な方法について説明します。 今回紹介する方法を使ってExtensionを作ると、名前空間が切り分けられ、コードの読み…

UIFeedbackGeneratorの使い方と便利に使えるライブラリ

iOSエンジニアの庄司です。 今回は開発中のアプリで使った UIFeedbackGenerator についてご紹介します。 UIFeedbackGeneratorとは、iOS 10以降で利用できるHaptic Feedback (触覚フィードバック) のAPIです。 この記事の要約 一般的なUIFeedbackGeneratorの…

新しいアプリを作るときによく使うSwift Extension集

iOSエンジニアの庄司 (@WorldDownTown) です。 最近、業務で新しいiOSアプリを立て続けにいくつか開発する機会に恵まれました。 そんな中、いくつもアプリを使っていると、どのアプリでもよく使う処理があぶり出されてきます。 そういう処理はSwiftのExtensi…

UIStackViewを使った詳細ページ実装のすすめ

UIStackViewを使用しての詳細ページの実装についてです

脱・文字列ハードコーディング

こんにちは、iOSエンジニアのにこらすです。 SwiftがiOSの主な開発言語になってから、多くの良いプログラミング習慣が標準になっています。 型安全な設計やコンパイル時のエラー検出が当たり前になりましたが、まだSwiftの型システムを活用せずに、Objective…

iQONをSwift 3.0.1にアップデートしたときに対応したポイント

iOSエンジニアの庄司 (@WorldDownTown) です。 iOS 10.1 のリリースから遅れること3日、Xcode 8.1 がリリースされました。この Xcode 8.1 では Swift のバージョンが 3.0.1 にアップデートされています。 iQON の iOS アプリでは、Xcode 8 リリース後すぐに …

Swift 3の変更点の裏側 (アクセス制御 / @escaping)

こんにちは。VASILYのiOSエンジニアのにこらすです。 2015年の12月からSwiftがオープンソースになり、 Swift Evolution(Swift言語の新しい仕様について提案する場所)で多くの開発者の提案が採用されました。 今回はSwift 3の アクセス制御 と @escaping につ…

Embedded Frameworkを導入してXcodeのビルドパフォーマンスをあげる

iOS

iOSエンジニアの遠藤です。 先日iQONで、Xcodeのビルドパフォーマンス改善の一環としてEmbedded Frameworkの導入を行いました。 今回は、そのEmbedded Frameworkの導入について紹介したいと思います。

iOSの月額課金レシート検証をサーバーサイドで行うときのTipsまとめ

こんにちは、バックエンドエンジニアのjoeです。 みなさんはお気に入りのアプリに月額課金をしたことがありますか?したことがない人は今すぐお気に入りのアプリをみつけて月額課金しましょう! 実際にiOSで月額課金をすると、課金の証明としてAppStoreがレ…

カテゴリー