Quantcast
Jump to content


Recommended Posts



  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Popular Days

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Similar Topics

    • By Samsung Newsroom
      January 2025 Unveiling Invites to "Galaxy Unpacked 2025" Ushering in a New Era of Mobile AI
      New Galaxy products are unveiled at Galaxy Unpacked 2025! Galaxy Unpacked 2025 commences on January 23, 3 AM KST (January 22, 10 AM local time) in San Jose, USA. It is streamed live online via the Samsung Electronics Newsroom, Samsung.com, and Samsung Electronics YouTube channel. Samsung Electronics' innovations are going to usher in a new era of the mobile AI experience with the natural and intuitive Galaxy UI. See for yourself.
        Learn More Highlights from the CES 2025 Samsung Press Conference
      On January 6, Samsung Electronics held the CES 2025 Samsung Press Conference under the theme "AI for All: Everyday, Everywhere," unveiling its technological visions. The full inter-device connectivity and hyper-personalized user experience through AI, both introduced at the conference, have attracted media attention from all over the world. Check out the innovative technologies that will change the future in our video.
        Learn More Updates for Samsung In-App Purchase: Resubscription and Grace Period Features
      Managing subscriptions is now more convenient with the new Samsung in-app purchase (IAP) updates. The newly updated features are resubscription and grace period.
      Users can now reactivate their canceled subscription in Galaxy Store using the resubscribe feature. Even if there is a problem with the payment when renewing a subscription, the subscription is not canceled if the problem is resolved during the set grace period. If the developer activates the grace period feature in the item settings of Galaxy Store's Seller Portal, the system automatically retries the payment and sends the information about the failed automatic payment to the user so that they can change their payment method.
      Developers can also see new information in the subscription API and ISN services, such as the subscription API's response parameters and ISN service events. Manage your subscriptions more effectively using these new features. Tutorial: Manage the Purchase/Subscription of Digital Items with Samsung In-App Purchases
      The hassle of managing digital item purchases and subscriptions is no more! Samsung in-app purchase (IAP) is a powerful tool that provides a more secure and convenient payment environment for users and expands commercialization opportunities for developers. This tutorial covers how to smoothly and efficiently implement item purchase/consumption processing and subscription management. A step-by-step guide and practical code examples are used to walk developers through the complex API integration process even if they're just starting out. Check out the tutorial on the Samsung Developer Portal.
        Learn More Tutorial: Step into Galaxy Watch Application Development Using Flutter
      Did you know that you can develop an application for Galaxy Watches with a single codebase? The tutorial shows software developers how they can develop applications for Galaxy Watch using the Flutter framework. Flutter is an open-source framework for building multi-platform applications from a single codebase. An easy step-by-step guide that can be followed without much preparation is provided for beginners, as well as practical tips and a code example for Flutter developers who are new to developing Galaxy Watch applications. Check out the tutorial and start developing Galaxy Watch applications!

      Learn More Tutorial: Monitoring Your Cards in Samsung Wallet in Real Time
      Do you want to monitor the status of cards added to Samsung Wallet on user devices in real time? Samsung Wallet provides the Send Card State API to make it easy to track the cards, as the API notifies the server of any changes whenever a card is added, deleted, or updated.
      The tutorial covers how to set up server notifications, how to receive notifications to a Spring server, and how to securely verify the received notifications. Learn how to monitor the status of cards in Samsung Wallet in real time.

      Learn More Samsung Electronics Demonstrates AI-RAN Technologies, Paving the Way for the Convergence of Telecommunications and AI
      Telecommunications technology is evolving beyond just improvements in data transmission speed, moving towards emphasizing user experience, energy efficiency, and sustainability. Samsung Electronics is accelerating the emergence of the era of future communications by showcasing the AI-RAN technology which integrates AI technology with the Radio Access Network (RAN), which is the core technology for communications networking.
      In particular, at the Silicon Valley Future Wireless Summit held in November 2024, Samsung Electronics demonstrated the results of the AI-RAN PoC to global communications providers, the first in the industry to do so. The technology indicated a possibility to greatly improve data throughput, communication coverage, and energy efficiency compared to the existing 5G RAN. It also proved the convergence of communications and AI could significantly enhance network performance. Learn more about Samsung Electronics' AI-RAN technology that goes beyond the boundary of communications and creates smarter networks with AI.

      Learn More Building a Trusted Execution Environment on RISC-V Microcontrollers
      In embedded systems such as IoT devices, it is crucial to protect sensitive data. For this, a Trusted Execution Environment (TEE) is required. It creates an isolated environment within the processor, so that security-sensitive tasks can be executed without risk of external threats.
      Samsung Research is conducting a study on how to implement the TEE technology on RISC-V-based microcontrollers (MCU), an open-source hardware architecture, and has introduced mTower, a core project related to this study. Learn more about stronger security for IoT devices on the Samsung Research blog.

      Learn More   
      https://developer.samsung.com

      Copyright© %%xtyear%% SAMSUNG All Rights Reserved.
      This email was sent to %%emailaddr%% by Samsung Electronics Co.,Ltd.
      You are receiving this email because you have subscribed to the Samsung Developer Newsletter through the website.
      Samsung Electronics · 129 Samsung-ro · Yeongtong-gu · Suwon-si, Gyeonggi-do 16677 · South Korea

      Privacy Policy       Unsubscribe

      View the full blog at its source
    • By Samsung Newsroom
      The Samsung Galaxy Watch is an essential gadget for modern health-conscious people. It provides health-related data that helps to prevent health issues. These Galaxy Watch features are driving its rapid rise in popularity and encouraging application developers to create applications specifically for it.
      The Galaxy Watch offers a great user experience and performance. This is where the Flutter framework plays a crucial role. It is a top choice when it comes to a beautiful UI, good performance, and rapid development. Flutter offers cross-platform support, which means we can build applications for multiple platforms using a single code base. With Flutter’s strong community support, developers can make production-grade applications with little effort.
      This blog outlines the steps involved in creating an application for the Galaxy Watch using Flutter, allowing you to explore the possibilities it offers.
      Set up your environment
      Please follow the official Set up Flutter guide to install the Flutter framework correctly on your device. After the installation, please check the status by running the following command. It tells you if any component is missing or suggests what to do next.
      flutter doctor NoteIf the above command provides suggestions or fixes, follow those to solve any problems before continuing. Get started with Flutter projects
      To simplify this application example, we are retrieving the battery levels from a Galaxy Watch to make it easy to understand the development process.
      In this blog, we use Android Studio as the IDE. But, if you are comfortable with VS Code, you can follow this Official Codelab to build your first Flutter application with that instead.
      To start, install the Flutter and Dart plugins on Android Studio. These plugins make it easier to manage Flutter development using the UI instead of the CLI.
      Figure 1: Install Flutter and Dart plugins
      After completing the setup, it is time to create the Flutter Project for Galaxy Watch.
      Go to File > New > New Flutter Project. Note that this method only appears if you installed the plugins mentioned above. Select Flutter from the left side panel and set the Flutter SDK path where it was installed during the Flutter setup, and click the Next button. Enter a project name and location, and choose the language according to your preferences. Uncheck all platform options except Android and keep the other options as they are. Click the Create button, and a new window should open with the project. You are now done. Next, we need to modify the code for Galaxy Watch.
      Break down the elements of a Flutter project
      A simple Flutter project for the Android platform contains the following folders:
      android/: Contains Android platform code and configurations. lib/: The main folder for a Flutter application. It contains your Dart code. The main.dart file is the entry point of a Flutter application. pubspec.yaml: A configuration file for Flutter. It manages the application’s dependencies and assets. Configure the project to support Galaxy Watch
      Let’s modify the generated code to include the battery level, allowing it to be displayed. Open the pubspec.yaml file and add the following plugins under dependencies:
      dependencies: flutter: sdk: flutter wear: ^1.1.0 battery_plus: ^6.0.3 We use the wear and battery_plus plugins for this project. The wear plugin provides APIs for wear-related functionality, and battery_plus is for accessing battery information from the OS. Both plugins were developed by the Flutter Community. You can even get battery information or trigger Wear OS native APIs using the Method Channel, which we will cover in our future blogs.
      Change the value of minSdk to 23, which is required for the plugins that we are using. Go to android > app > build.gradle and change the minSdk property value under defaultConfig.
      defaultConfig { applicationId = "com.example.flutter_app" minSdk = 23 targetSdk = flutter.targetSdkVersion versionCode = flutterVersionCode.toInteger() versionName = flutterVersionName } Add the following code to your AndroidManifest.xml file, above the <application> tag. This tag defines that we are building the application for watches.
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-feature android:name="android.hardware.type.watch" /> <application android:label="galaxy_watch_battery_info" Build the watch application
      The main challenge is crafting your application to fit a tiny screen. We must be aware of good practices regarding UI, UX, and compactness at the same time. But as mentioned, this application is a simple one.
      Here we work with the build function of the MyHomePage class, where the UI implementation is applied. The main() function is the starting point for a Flutter application. It triggers the build function sequentially. Refer to the following build method for an example.
      @override Widget build(BuildContext context) { return MaterialApp( title: 'Galaxy Watch Demo', theme: ThemeData( visualDensity: VisualDensity.compact, useMaterial3: true, colorSchemeSeed: const Color(0x9f4376f8), ), home: Scaffold( body: SafeArea( child: _getWatchView(context), ), ), ); } The widgets we use are:
      MaterialApp: The root widget that contains all the contents of the application UI and provides application functionalities like home, theming, navigations, localizations, and so on. Scaffold: It provides a visual layout structure for an application, which has options like an app bar and body. SafeArea: A widget that encircles its child to ensure it avoids overlap with the OS interface. Tailor the UI
      We can now access the WatchShape widget since we converted our application to a watch application. WatchShape is the key widget for watch UI design. It provides the basic interface shapes for watches along with ambient modes of the watch. As mentioned earlier, the UI has a simple button that queries the battery level and shows it in a dialog.
      Widget _getWatchView(BuildContext context) { return WatchShape( builder: (BuildContext context, WearShape shape, Widget? child) { return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [const Text("Hello from Galaxy Watch"), ElevatedButton(onPressed: () { _battery.batteryLevel.then((batteryLevel) { showDialog<void>(context: context, builder: (_) => AlertDialog( content: Text('Battery: $batteryLevel%'), actions: <Widget>[ TextButton( onPressed: () { Navigator.pop(context); }, child: const Text('OK'), ) ])); }); }, child: const Text('Get battery level'))]) ); }, ); } The widgets we use are:
      WatchShape: This widget makes the UI compact to fit the watch’s small screen. battery.batteryLevel: To access the battery information, we need to create an instance of the Battery class. Please refer to the following code as an example. final Battery _battery = Battery(); Test the application
      Now it’s time to see how your application works. Save all the changes and run the application by clicking the Run button from the “Main Toolbar.” You should see a new UI titled “Hello from Galaxy Watch” with a single button. You have created a Flutter application for a Galaxy Watch. Congratulations!
      Figure 2: Sample application
      Conclusion
      This blog walked you through building an application for Galaxy Watch. Flutter offers an amazing toolkit for crafting beautiful UIs. Within a short time you can build applications on a device to accomplish what you want.
      Don’t forget to experiment with building applications and enjoy the journey of creating something new for Galaxy Watches. For more tips and tricks on Galaxy Watch application development, please keep your eyes on the Samsung Developer portal.
      View the full blog at its source
    • By Samsung Newsroom
      Play Asset Delivery (PAD) enhances the gaming experience by offering the advantages of application bundles, which are packages that group all necessary resources for efficient delivery, making downloads faster and installations smoother for players. Android App Bundles (AAB) are a type of PAD, the modern way of building and publishing Android applications and games in Google Play Store. The Samsung Galaxy Store recently introduced the option to upload AAB files to Galaxy Store Seller Portal. However, AABs have some Google Play Store proprietary features that might make a game non-functional when it is uploaded to Galaxy Store. This article explores ways in which you can utilize PAD while ensuring your game remains compatible with Galaxy Store.
      Purpose
      PAD is a very useful feature that helps reduce the game's initial download size, as it downloads various game assets at runtime. There are multiple ways of using this feature in Unity games. However, certain PAD configurations may cause the game's assets to fail to load when the game is published to Galaxy Store. In this tutorial, you learn how to properly configure PAD and adjust Unity configurations accordingly, so your game can be successfully published to Galaxy Store.
      In the following sections, PAD functionalities are implemented in an existing coin collector game (referenced in the article Integrating Samsung IAP in Your Unity Game), demonstrating how to download and apply a new set of materials for the floor tile at runtime. Here, you also learn about the adjustments that are necessary for successfully publishing a game using PAD to Galaxy Store.
      Prerequisites
      To follow this tutorial, ensure that your setup has the following:
      Unity Game Engine version 2023.2 or above The "Addressables for Android" package for Unity A Google Play developer account A Galaxy Store Seller Portal commercial seller account A game created using Unity where you want to add the PAD features To implement PAD in your Unity game, you can use the "Addressables for Android" package. This is the easiest and most convenient way to implement PAD in a game. This package is only supported on Unity version 2023.2 or above. If your game is built using a previous version of Unity, please migrate your game to the Unity 2023.2 version first.
      PAD implementation considerations
      There are multitude of ways to implement PAD in games built with the Unity engine. However, the most common method for implementing PAD restricts the game to being publishable exclusively on the Google Play Store and does not provide any easy method of disabling PAD for uploading these games into other storefronts. For the best experience with your game, it is recommended to use PAD to bundle all game assets together. This approach ensures that all necessary resources are downloaded right away, preventing any missing assets which could affect the user experience.
      There are three types of asset packs that can be configured while using PAD: "Install Time," "Fast Follow," and "On Demand." Games that use the "Install Time" asset packs can be uploaded to Galaxy Store without any issues as these assets are installed together with the game and do not require any separate downloads. When Galaxy Store generates a universal APK from AAB files, the "Install Time" assets are directly included in the APK.
      Games that are designed to only use "On Demand" or "Fast Follow" asset packs do not allow downloading their assets when they are uploaded to a storefront that is not the Google Play Store. Thus, for any game that uses either the "On Demand" or "Fast Follow" asset pack delivery method, PAD must be disabled in order to upload the game to Galaxy Store.
      To ensure that your game's PAD functionality can be easily switched off and your game is successfully uploaded to Galaxy Store, the "Addressables for Android" package must be used to implement PAD.
      This article assumes that you have implemented PAD in your game using the "Addressables for Android" package and that you have also configured these two assets with the following configurations:
      A "Grass" asset pack set to be downloaded as a "Fast Follow" asset A "Ground" asset pack set to be downloaded as an "On Demand" asset In the next sections, you learn how to integrate PAD into your existing Unity game using the "Addressables for Android" package so that you can easily publish your game to Galaxy Store with minimal changes.
      Basic steps to implement PAD in your Unity game
      In this section, you learn how to configure your assets using PAD functionality that keeps your game compatible with both Google Play and Galaxy Store.
      In Unity, configure "Build Settings" to run the game on Android and generate the AAB: Click File > Build Settings and then select the Android tab. On the "Android" tab, select the Build App Bundle (Google Play) checkbox.



      Figure 1: Enabling the "Build App Bundle" option

      Install the "Addressables for Android" package from the Unity Package Manager. This additionally installs the "Addressables" package as a dependency. Initialize PAD. Go to Window > Asset Management > Addressables and click Init Play Asset Delivery.



      Figure 2: "Init Play Asset Delivery" option

      Configure the "Addressables Groups" for assets: Select Window > Asset Management > Addressables > Groups. Click New > Play Asset Delivery Assets. This creates a new group. Enter a descriptive name. For the purposes of this walkthrough, name one group "Grass" and then create another group and name it "Ground."



      Figure 3: Creating asset groups

      Assign the assets to the Addressables Group: Select the assets you want to assign to an Addressables Group and in the "Inspector" dialog box, tick the Addressable checkbox. The asset is converted into an "Addressable" and assigned to the default Addressables Group.



      Figure 4: Converting assets into Addressables

      Click the folder name in the "Group" field. In the example, the folder name is "Grass."
      Drag and drop the asset from the default group to the group of your choosing. For the purposes of this exercise, assign the grass material related assets to the "Grass" Addressables Group and ground material related assets to the "Ground" Addressables Group.




      Figure 5: Assigning assets to groups

      Configure the "Play Asset Delivery" schema for these addressable groups to add the PAD functionality to your game: Select any of the top-level Asset Group names in the "Addressables Groups" window to open the inspector window for that group. Scroll down in the "Inspector" window until you find the "Play Asset Delivery" schema. From the "Delivery Type" dropdown list, select Install Time, Fast Follow, or On Demand, based on your requirements. There is a demonstration below on how the game might behave on Galaxy Store when you choose the option "On Demand." For more information, see the Testing your PAD Enabled Game on the Play Store and Galaxy Store section.



      Figure 6: Selecting the delivery type for asset groups

      In the "Addressables Groups" dialog box, select Build > New Build > Play Asset Delivery. Now, the game's addressable-asset configuration is complete. Each asset assigned to an addressable group is packed into an asset pack for that group and the asset pack can be downloaded separately using PAD. Note that asset packs can only be downloaded separately from the Play Store if their delivery type is "On Demand" or "Fast Follow."
      Loading and using the addressable assets with AssetReference
      This section provides a script which details how to load the addressable assets that were implemented with PAD in the earlier sections. Your game is set up to load the addressable assets efficiently. If an asset has not been downloaded yet, the game automatically attempts to download it as an "On Demand" asset using PAD before it loads into the game.
      To complete this setup, use the AssetReference type in your game. This feature enables you to manage and edit addressable assets dynamically at runtime, which gives you more flexibility and control over the assets that your game uses.
      To use two game addressable assets in your script, follow these steps:
      Create two AssetReference instances for the floor types (grass and ground) that you added in the previous section. Add the SerializeField attribute to these AssetReference instances. This enables setting up the assets directly from the Unity editor: [SerializeField] AssetReference Grass_mat; [SerializeField] AssetReference Ground_mat; In the Unity editor, drag and drop the grass and ground assets into the fields in the GameObject script section. Now the AssetReferences specifically reference these two assets during runtime.
      Downloading assets during runtime is necessary for PAD. Use AsyncOperations to load these assets:
      Grass_mat.LoadAssetAsync<Material>().Completed += OnGrassAssetLoaded; Ground_mat.LoadAssetAsync<Material>().Completed += OnGroundAssetLoaded; The OnGrassAssetLoaded and OnGroundAssetLoaded handler functions are defined to use the loaded assets. The LoadAssetAsync method passes the asset using an AsyncOperationHandle, and from there you can access the asset itself using the AsyncOperationHandle.Result parameter.
      In this game, we are using PAD to load the grass and ground assets. Once they are successfully loaded, you can change the floor tile material using the following handler functions.
      In this example, after loading the grass and ground assets, you apply the material change to all the floor tiles in the level:
      void OnGroundAssetLoaded(AsyncOperationHandle<Material> handle) { groundMaterial = handle.Result; foreach (GameObject prefab in floorPrefabs) { prefab.GetComponent<MeshRenderer>().material = groundMaterial; } } Save the script and go back to the Unity editor. The new materials are loaded and applied to the floor tiles in the level.

      Testing your PAD-enabled game on the Play Store and Galaxy Store
      The game configuration for using addressable assets and PAD is complete. Before publishing your game, consider whether to use the "Split Application Binary" option.
      On the Android Player settings, expand "Publishing Settings," and scroll down to the "Split Application Binary" checkbox. This checkbox decides how Unity handles packaging when building the game. If this checkbox is checked, Unity splits the base game files from the asset files when building the AAB and enables you to configure each PAD feature in your game. In the images below, you can see what happens when you choose this option. If this option is unchecked, Unity always generates a singular archive file and disables PAD. This is the safest option for uploading your game to Galaxy Store, if your PAD configuration is using options that are not supported by Galaxy Store.



      Figure 7: "Split Application Binary" option

      To enable PAD, check the "Split Application Binary" option Build the game and upload the generated AAB file to both the Play Store and Galaxy Store to check how the game behaves in both stores. If the game assets load correctly in both stores, the PAD configuration was done correctly. Below is an example of what might happen if "On Demand" configuration is used instead.
      When the game is downloaded from the Play Store, Unity automatically downloads the "On Demand" assets. A notification for an "Additional file download" appears during the download process:




      Figure 8: Additional file download notification

      Once the download is complete, the downloaded asset is loaded in your game, replacing the previous assets. In this example game case, the old ground and grass materials are changed to the new textures configured in the previous section.




      Figure 9: Assets updated in the game

      However, when the same game AAB file is uploaded to Galaxy Store and a user downloads it from this store, the PAD assets are not downloaded. Thus, when the game tries to use these assets, they cannot be loaded into the game's memory and glitches might appear.
      While additional error checking can be done to avoid these glitches, the functionalities which require PAD assets still cannot be used. Internally, the game checks the installation source before trying to download the PAD assets and throws an error if the game is not installed from the Play Store.




      Figure 10: Issues might occur if a PAD-enabled game is uploaded to Galaxy Store

      Making the game compatible with Galaxy Store
      To upload your game to Galaxy Store, you can adjust the asset handling to be compatible with Galaxy Store. The best way to do this is by bundling the assets together with the base game, as explained in the previous sections.
      This method is highly recommended. This ensures that the required assets are always available with the game, as well as allowing you to change the assets during runtime, if necessary. Though this can increase the game download size and require you to upload a separate AAB file to Galaxy Store, the process ensures that the assets are always available with the game for full feature parity across all storefronts.
      To make your game build compatible with all storefronts, choose one of the following approaches.
      Option 1: Uncheck the "Split Application Binary" checkbox
      Go to Build Settings > Player Settings > Publishing Settings and uncheck the Split Application Binary checkbox. When you then compile the game, the new AAB file is compatible with Galaxy Store and all the game's functionalities remain intact.




      Figure 11: "Split Application Binary" unchecked option.

      With this option, the assets are packaged together with the game and no separate download is required.
      Option 2: Change delivery type to "Install Time"
      If you want to keep using PAD, you can achieve compatibility by changing all addressable asset groups' delivery type to "Install Time." Keep in mind that when choosing this option, all assets need to be changed to "Install Time" one by one, while the previous one is a one-click process. Unlike "On Demand" and "Fast Follow" asset packs, "Install Time" asset packs are included in the universal APK. Thus, the assets are downloaded together with the game and work as intended without causing errors.
      From the user's perspective, the main difference between "Install Time" and other PAD options is whether the assets are downloaded when the game is installed or later during gameplay. The initial download size is larger when the assets are packaged together with the game, but on the other hand, the user will not need to wait for the assets to download later during gameplay. This enables offline gameplay as well.
      Conclusion
      In this tutorial, you have learned how to configure a Unity game with PAD so that it can easily be published to Galaxy Store without requiring massive changes or breaking any compatibility. For more information, check out the "Addressables for Android" package documentation page Build content for Play Asset Delivery. If you have any feedback or questions, reach out to us in the Samsung Developers Forum.
      View the full blog at its source





×
×
  • Create New...