Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Wear OS Latest Topic
& Improving Wear OS App Usability

Wear OS Latest Topic
& Improving Wear OS App Usability

This is the slide, "Wear OS Latest Topic
& Improving Wear OS App Usability" on potatotips 82.
#wearos #android #potatotips

Kenichi Kambara

June 20, 2023
Tweet

More Decks by Kenichi Kambara

Other Decks in Technology

Transcript

  1. 2023.06.20


    ਆݪ ݈Ұ (@korodroid)
    Wear OS Latest Topic

    & Improving Wear OS App Usability
    potatotips #82

    View Slide

  2. 2
    About me
    Kenichi Kambara (@korodroid)
    •Mobile App Development


    •Speeches (e.g. 15 Int’l Confs.)


    •Writings (e.g. 8 Dev Books)


    •Principal Evangelist at NTT TechnoCross


    •[Private] iplatform.org

    View Slide

  3. Recent Activity (Overseas)
    Droidcon SF 2023@San Francisco (Speech)

    View Slide

  4. Wear OS Overview

    Noti
    fi
    cation Complication
    Based on Android & optimized for the wrist
    Tile

    App

    View Slide

  5. Wear OS Topics from I/O 2023

    Watch Face Format Watch Face Studio Tile (Animation)

    View Slide

  6. Wear OS ΞϓϦ։ൃೖ໳ with Jetpack Compose
    Improving Wear OS App Usability

    View Slide

  7. Creating an App

    Noti
    fi
    cation Complication Tile

    App

    View Slide

  8. Sample App
    8

    View Slide

  9. Looks good, but to make it better…
    9

    View Slide

  10. Adding a Tile feature

    Noti
    fi
    cation Complication
    Provide easier access to this app
    Tile

    App +

    View Slide

  11. Implementing a Tile feature

    class MainTileService : CoroutinesTileService() {
    // Abbreviates some procedures, such as reading data from the repository

    override suspend fun resourcesRequest(
    requestParams: RequestBuilders.ResourcesRequest
    ): ResourceBuilders.Resources {
    return ResourceBuilders.Resources.Builder().setVersion(RESOURCES_VERSION).build()
    }
    override suspend fun tileRequest(
    requestParams: RequestBuilders.TileRequest
    ): TileBuilders.Tile {
    val singleTileTimeline = TimelineBuilders.Timeline.Builder().addTimelineEntry(
    TimelineBuilders.TimelineEntry.Builder().setLayout(
    LayoutElementBuilders.Layout.Builder().setRoot(tileLayout(this)).build()
    ).build()
    ).build()
    return TileBuilders.Tile.Builder().setResourcesVersion(RESOURCES_VERSION)
    .setTimeline(singleTileTimeline).build()
    }
    }
    a Kotlin coroutine-friendly wrapper

    from the Horologist Tiles library
    /MainTileService.kt

    View Slide

  12. Adding a Tile de
    fi
    nition

    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@android:style/Theme.DeviceDefault">

    …

    android:name=".tile.MainTileService"
    android:exported="true"
    android:label="@string/tile_label"
    android:permission="com.google.android.wearable.permission.BIND_TILE_PROVIDER">



    android:name="androidx.wear.tiles.PREVIEW"
    android:resource="@drawable/tile_preview" />


    /AndroidManifest.xml

    View Slide

  13. That’s all! Can show the last contact easily.
    13

    View Slide


  14. Tips💡 Useful features for Wear OS

    View Slide


  15. Please let me know if you have any requests

    such as technical speeches, technical writings and so on.
    Facebook:http://fb.com/kanbara.kenichi


    Twitter:@korodroid


    LinkedIn:http://www.linkedin.com/in/korodroid
    Thank you so much

    View Slide