タグ

ブックマーク / techblog.zozo.com (10)

  • 「ガチ対話」でエンジニアチームのエンゲージメントを高める1on1の工夫 - ZOZO TECH BLOG

    はじめに BtoB開発部の増田です。 BtoB開発部は、主にFulfillment by ZOZO(以下、FBZ)の開発を担当しているエンジニアチームです。FBZの初回ローンチから間もなく3年経過しますが、サービスの拡大、拡張とともに見直すべき課題も増えてきました。日々の運用負荷の増大や、それに伴う開発効率の低下の話しを耳にする機会も増えています。そこで、今期の開発計画では、運用改善のための開発も優先度を上げて取り組むこととしていました。 一方で、新型コロナウィルスの影響もありチーム全体がリモートワークに移行して1年が経過しました。リモートワークが浸透する過程にはさまざまなコミュニケーション課題があり、上記の運用改善の施策を進める上でもコミュニケーションの円滑化が急務でした。 そのようなコミュニケーション課題の対策のひとつとして1on1に力を入れているチームも多いでしょう。この記事では、1

    「ガチ対話」でエンジニアチームのエンゲージメントを高める1on1の工夫 - ZOZO TECH BLOG
  • Androidアプリ開発にFluxアーキテクチャを導入したら保守性も品質も上がりました - ZOZO TECH BLOG

    こんにちは。フロントエンドエンジニアの茨木(@niba1122)です。 弊社のAndroidアプリ開発ではMVVMアーキテクチャを用いています。日々肥大化・複雑化していくViewModelが保守性や品質を担保する上で課題になっていましたが、Fluxアーキテクチャの導入により改善することができました。 記事では、実際どのようにFluxアーキテクチャを導入したのかを、設計やコード例を交えながらご紹介します。 今までのMVP・MVVMの限界 アプリ開発ではMVP・MVVMといったアーキテクチャがよく用いられます。弊社のAndroidアプリ開発でもMVVMを用いています。これらのアーキテクチャはビューとドメインロジックを分割するのに役立っています。しかし、昨今のUIには多くのイベントや状態があり、更にそこにAPIリクエストなどの非同期処理が絡んできます。これらが関わるプレゼンテーション層のロジッ

    Androidアプリ開発にFluxアーキテクチャを導入したら保守性も品質も上がりました - ZOZO TECH BLOG
  • iOSアプリに導入したプロトコル指向なAPI抽象レイヤーの設計 - ZOZO TECH BLOG

    iOSアプリエンジニアの@hiragramです。VASILYにジョインしてだいたい3か月経ちました。 今回は、僕がジョインしたプロジェクトに導入した、APIリクエストの抽象レイヤーの設計について紹介します。また、記事の最後にこの抽象レイヤーのコードをフレームワークとして切り出したもののリンクがありますので、興味がある方は見てみてください。 課題と方針 当プロジェクトでは、リアクティブフレームワークにRxSwift、通信ライブラリにAPIKit、JSONマッパーにHimotokiを採用しています。 従来のアプリの実装には、 ViewModelが直接APIKitをインポートして通信しており、通信のトリガーやレスポンスの処理が画面によってバラバラ APIが取得対象のリソースを常にresultsというキーに配列で返すようになっており、必ず1個しか返さないAPIのレスポンスもresults.firs

    iOSアプリに導入したプロトコル指向なAPI抽象レイヤーの設計 - ZOZO TECH BLOG
    to4iki
    to4iki 2017/10/09
    “GlobalStream”
  • SwiftでLottieを使ってアニメーションを実装する - ZOZO TECH BLOG

    こんにちはフロントエンジニアの茨木です。一ヶ月ほど前からSwiftでiOSアプリ開発をやっています。iOS開発経験は浅いですが、Lottieというライブラリを使用し、いきなりアニメーションごりごりの画面を担当してみました。 LottieはAirbnb社が開発したライブラリで、僅かなコードでアニメーションを実装できるスグレモノです。 記事では、SwiftにおけるLottieの使い方を説明します。 Lottieの特徴 Lottieの最も大きな特徴は、Adobe After Effectsで出力したアニメーションデータをそのまま読み込むだけでアニメーションを実装できることです。その為、沢山のコードや画像が不要なのはもちろんのこと、デザイナーが作ったアニメーションを忠実に再現することが可能です。更に、LottieはAndroidReact Nativeもサポートしているので、クロスプラットフォ

    SwiftでLottieを使ってアニメーションを実装する - ZOZO TECH BLOG
    to4iki
    to4iki 2017/08/12
    アニメーションデータ読み込むのか
  • 新しいアプリを作るときによく使うSwift Extension集 - ZOZO TECH BLOG

    iOSエンジニアの庄司 (@WorldDownTown) です。 最近、業務で新しいiOSアプリを立て続けにいくつか開発する機会に恵まれました。 そんな中、いくつもアプリを使っていると、どのアプリでもよく使う処理があぶり出されてきます。 そういう処理はSwiftのExtensionとして別ファイルに書き出し、他のアプリへも切り出しやすいように個別のFrameworkにして管理しています。 Frameworkの管理については過去のこちらの記事を参考にしてみてください。 今記事では、最近の開発でよく使ったExtension集をご紹介します。 Swift標準ライブラリ Date private let formatter: DateFormatter = { let formatter: DateFormatter = DateFormatter() formatter.timeZone = N

    新しいアプリを作るときによく使うSwift Extension集 - ZOZO TECH BLOG
  • 開発にもっと優しさを - iOSアプリの実装規約について - ZOZO TECH BLOG

    こんにちは。iOSエンジニアの遠藤です。 今回はiOSチームでの実装規約について紹介したいと思います。 Swiftのコーディングについてだけではなく、実装する上での細かい約束事をまとめました。 参考になれば幸いです。 実装規約について VASILYでのiOSアプリ実装規約はこちらからご参照ください。 実装規約とは? 普段多く見る規約はコーディング規約だと思います。 しかしVASILYではコーディングだけではなく、Interface Builder上でのViewの階層やコードの並び順などコード自体の書き方だけではなくチームで開発・実装をするうえで気をつけることについても触れています。 そのため、コーディング規約ではなく実装規約としています。 実装規約の目的 実装規約にも書いてありますが、規約の目的は以下の3つです。 コードの統一 パフォーマンスの向上 メンテナンス性の向上 複数人で開発をし

    開発にもっと優しさを - iOSアプリの実装規約について - ZOZO TECH BLOG
    to4iki
    to4iki 2017/04/22
    スニペットいいな
  • Androidアプリを長く開発し続けるために気をつけている9個のルール - ZOZO TECH BLOG

    Androidエンジニアの @nissiy です。Androidが発表されてからもうすぐ10年になろうとしています。長いですね。 実はAndroid版IQON、今年の4月でリリースしてから丸5年を迎えます。ここまで長くサービスを続けられて、かつ3年連続でベストアプリをいただけたのは、使ってくれているユーザーの方々のおかげであると日々感謝しています。 この5年で様々な追加機能の開発を行ってきました。新機能を1つ追加する度に、古い機能を1つ削除することを徹底して開発を進めてきたものの、長く開発を続けているのでそれなりに巨大なアプリになっています。 今回はAndroid版IQONを長く開発し続けるためにチーム内で徹底しているルールをいくつか紹介したいと思います。 当たり前な話ばかりですが、大きくOSのアップデートを繰り返すAndroidのアプリ開発に取っては大事な話ばかりですので、少しでも参考に

    Androidアプリを長く開発し続けるために気をつけている9個のルール - ZOZO TECH BLOG
  • Swift 3の変更点の裏側 (アクセス制御 / @escaping) - ZOZO TECH BLOG

    こんにちは。VASILYのiOSエンジニアのにこらすです。 2015年の12月からSwiftがオープンソースになり、 Swift Evolution(Swift言語の新しい仕様について提案する場所)で多くの開発者の提案が採用されました。 今回はSwift 3の アクセス制御 と @escaping についての変更点と、その背景について紹介します。 Swift 言語の変更点はすべて、Swift Evolution で確認することができます。 さらに変更点だけでなく、決定に至る議論の内容はSwift Evolution Mailing List のメーリングリストで追うことができます。さらにここで アーカイブ も読めます。 アクセス制御 Swift 2 でのアクセス制御の概念は private, internal, public の3つでした。 Swift 3では、Swift Evolutio

    Swift 3の変更点の裏側 (アクセス制御 / @escaping) - ZOZO TECH BLOG
    to4iki
    to4iki 2016/10/18
  • UIPageViewControllerをつかって無限スクロールできるタブUIを実装してOSSとして公開しました - ZOZO TECH BLOG

    こんにちは、エンジニアの遠藤です。 最近iQONアプリのホーム画面のデザインをリニューアルしました。 タブを使ったデザインにすることで、iQON内にある多くのコンテンツが見やすくなりました。 今回はこのタブ機能の実装についてざっくりと紹介しようと思います。 実装したものはライブラリーとしてGitHubに公開しているので、ぜひ使ってみてください! github.com 機能 今回実装した機能は下記の3つです 1. スワイプでページを無限に表示切り替え 2. タブは無限スクロール 3. タブをタップしたらタップした項目のページを表示 実装について 1. スワイプでページを無限に表示切り替え スワイプしたらページの表示を切り替えたいのでUIPageViewControllerを継承したTabPageViewControllerというクラスを実装しました。 今回は無限にページの表示切り替えをしたい

    UIPageViewControllerをつかって無限スクロールできるタブUIを実装してOSSとして公開しました - ZOZO TECH BLOG
    to4iki
    to4iki 2016/05/26
  • SequenceTypeの利便性 in Swift 2.2 - ZOZO TECH BLOG

    Making Sequences work for you こんにちは! VASILYのiOSエンジニアにこらすです。 SwiftのコントリビューターとSwift EvolutionSE-0053の作者です。 他のOSSプロジェクトにも貢献してるので興味があればGithubでフォローしてください。 今回のトピックはSwift2.0以降のSequenceTypeというプロトコルと、その内部的な動きについて紹介します。classやstructをSequenceTypeプロトコルに準拠させると、for inループやmap, filterなどを使えるようになります。 さあ、始めましょう! struct Unique<T: Comparable> { private var backingStore: [T] = [] var count: Int { return backingStore.cou

    SequenceTypeの利便性 in Swift 2.2 - ZOZO TECH BLOG
    to4iki
    to4iki 2016/04/05
  • 1