Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

Kotlin Fest 2019 にみんなで行ってきた!

こんにちは。株式会社ヤプリでAndroidエンジニアをしている白井・dais-sasaです。

Kotlin が Android 開発で正式な言語として採用されて早 2 年となります。
今回は 8/24 (土) に開催された Kotlin Fest 2019 にみんなで行ってきましたのでレポートしたいと思います。

kotlin.connpass.com

続きを読む

potatotips #64 で Truth について話しました!

f:id:dais-sasa:20190828092047p:plain
potatotips#64 Repro様の会場

こんにちは、株式会社ヤプリでAndroidエンジニアをしているdais-sasaです!

先日、アプリエンジニア界隈で盛んに活動しているpotatotipsという勉強会で登壇してきました(2回目)。

potatotips.connpass.com

今回の主催者はRepro様になります。
以前の登壇記事にも記載しましたが、弊社でも11月にpotatotipsを主催するので、良ければご参加下さい。

今回のpotatotipsでは、以前当ブログでも紹介した「Truth」について「AssertJ」と比較する形で発表しました。
その際に使用した資料を公開します。

続きを読む

折りたたみスマホシミュレーターを動かして見た

こんにちは、株式会社ヤプリでAndroidエンジニアをしている岩端です。

もうそろそろ Android Qがリリースされそうですね! Android Qでは折りたたみ式デバイスのサポートが強化され、Android Studioでは折りたたみ式デバイスシミュレーターを使えるようになったので、動かしてみました。

折りたたみスマホとは

端末を二つ折りにできる折りたたみ式スマホ。

今年9月に数端末の発売が予定されていたり、OSとしてもサポートを強化し、今後の展開に注目が集まっている。

Android Studio準備

1.Android3.5 RC2(2019/8/13時点)をDLしてインストールして起動

2.Devices ManagerでCreate Virtual Deviceを押下 下記の端末サイズが用意されている

・7.3 Foldable

・8 Foldable f:id:yappli-iwahana:20190815100546p:plain

3.作成が完了したら実行

動かしてみて気が付いたこと

・色々な画面比率を想定して実装していれば、大きなデザイン崩れが起きることはなさそう

・スクロールするような画面の場合、開閉時で見える領域が異なる

・開閉動作で再描画が走る

 構成の変更に対する対応方法 -> 構成の変更を処理する  |  Android デベロッパー  |  Android Developers

・折りたたみ(マルチウインドウ)非対応にもできる

 android:resizeableActivityandroid:minAspectRatioを設定すると制限することができる

まとめ

折りたたみスマホ対応をする場合、下記2点の調整を行うと良さそうです。

1、デザイン崩れは無いか

2、各画面の折りたたみ開閉時の画面保持状態はどうあるべきか

元々多種の画面サイズ、密度、比率を想定して実装することが多いため、大きな画面崩れは発生しないと思います。 しかし、今後は更に様々なアスペクト比をサポートしていて、画面比率1:1を折りたたむと21:9のように大きく比率が変わるケースもある為、より幅広い使い道が生まれ、今まで以上に様々な端末サイズにあった調整が必要になっていきそうです。

f:id:yappli-iwahana:20190815164205p:plain
画面比率例

iOS 13 から導入されるSceneDelegateとは

こんにちは、ヤプリの三縞です。

Xcode 11 からはiOSプロジェクトを新規作成すると AppDelegate と同時に SceneDelegate も自動生成されます。
この記事ではこの SceneDelegate について、その役割や AppDelegate との違いについて調べたことを残しておきます。

SceneDelegateの役割

SceneDelegate によって、1つのアプリに対して複数のUIのインスタンスを作れるようになります。

今秋にリリースされるiPadOSでは Slide Over / Split View 機能で1画面の中に同じアプリを2つ並べることができるようになりますが、これはこの「1つのアプリに対して複数のUIのインスタンスを作れるように」なることで実現可能となります。

Xcode 11 からはiOSプロジェクトの新規作成時に自動で SceneDelegate が作成されることから、今後はiOSでも複数のUIインスタンスを利用した新しい機能が導入されるのではないかと思っています。

SceneDelegateの挙動

  • SceneDelegate は iOS 13 から導入される protocol UIWindowSceneDelegate に準拠するクラス
  • SceneDelegate必須ではない
    • Info.plistの Application Scene Manifest (キー名: UIApplicationSceneManifest) にSceneの設定があるときに必要となる
  • SceneDelegate がある場合・ない場合のどちらでも AppDelegate は必要
    • @UIApplicationMain Attributeを用いてアプリのエントリーポイントとして指定するため
  • 「ライフサイクルイベント」が発生したときは SceneDelegateAppDelegate のどちらかのメソッドしか呼ばれない
    • iOS 13 かつ SceneDelegate が使用されている場合は SceneDelegate
    • それ以外では AppDelegate
  • 「ライフサイクルイベント」とは以下のようなもの
    • バックグラウンド・フォアグラウンドへの移動
    • ResignActive・BecomeActive
    • open URL
    • NSUserActivity系
  • SceneDelegate がある場合・ない場合のどちらでも、アプリ全体に関わるイベントは AppDelegate のメソッドが呼ばれる
    • application:didFinishLaunchingWithOptions:
    • applicationWillTerminate:
  • SceneDelegate がある場合・ない場合のどちらでも、以下のような「ライフサイクルイベント」に関するNotificationは機能する
    NotificationCenter.default.addObserver(forName: UIApplication.didEnterBackgroundNotification, object: nil, queue: nil) { _ in
        print("notification didEnterBackgroundNotification")
    }

確認環境

  • Xcode 11 beta 5
  • Swift 5.1

参考資料

アサーションライブラリ「Truth」を使ってみた

こんにちは、株式会社ヤプリでAndroidエンジニアをしているdais-sasaです!

最近、弊社ではエンジニアが新技術に積極的に触れられるように、週に一度もくもく会を開催しています。
そこで、7月8日にバージョン1.0がリリースされたアサーションライブラリ「Truth」を試しに使ってみました。

本記事では、「Truth」を使うための設定や基本的な使い方について紹介します。

Androidエンジニアの皆さんの何かの参考になれば幸いです。

続きを読む

WWDC 2019 に当選してからやったこと

f:id:mishimay:20190618183112j:plain
WWDC 2019 会場近くの駅

こんにちは、iOSエンジニアの三縞です。

WWDC 2019 に当選してからやったこと・やっておけばよかったことのタスクリストをまとめてみました。
来年また行くことになったときのために、あるいは将来初めて参加される方の参考となるように書き残しておきます。

※ WWDCに特有の事項、または特に留意すべきことについて書いています。一般的な海外旅行の準備については各自確認してください。

※ 2020年以降のWWDCでは事情が変わっている可能性があるので注意してください。

続きを読む

WWDC 2019 に行ってみてわかったこと

こんにちは、iOSエンジニアの三縞です。
今回初めてWWDCへ参加することができました。

f:id:mishimay:20190613114349j:plain
WWDC 2019 会場

初のアメリカでしかも初の1人海外ということで行く前までは不安もあったのですが、出発から帰国まで終始楽しめて1週間ほどの滞在が本当に短く感じました。
この記事では現地の雰囲気や、発表内容以外の情報など、現地に行ったからこその内容に重点を置いて書いてみようと思います。

  • 現地の雰囲気
    • 天気
    • 交通
    • 英語
  • 会場の雰囲気
    • 空調
    • 体験コーナー
    • イベント
  • 現地ならではの体験
    • ハンズオンラボ
    • コンサルテーションラボ
    • “Get-Together” 系のセッション
  • 発表について
  • 最後に
続きを読む

Copyright © 2018 Yappli, Inc. All rights reserved