Print 2
Print 2
IS2023
MOBILE APPLICATIONS Intended Learning Outcomes:
• Group project collaboration techniques.
FOR BUSINESS • Describe various App Monetization Strategies.
1 2
https://docs.google.com/document/d/15cEkliGmGxLX2muxysEOrMbPJnjmmglMtMVhbDpLZFE/edit#he
ading=h.uqq1hmq6y3rx
3 4
How to copy a screen from 1 project to
another with ais file in Kodular?
• https://www.youtube.com/watch?v=c232uesMdnE
PART III
Monetizing Apps
https://books.google.com.hk/books?id=cqNdAgAAQBAJ&pg=PA344&lpg=PA344&dq=Learning+Mobile+App+Development:+A+Hands-
on+Guide+to+Building+Apps+with+iOS+and+Android&source=bl&ots=YTb1yxb-F3&sig=5CZ9ZFjdfBzcfYF5Va2gv4aHtpM&hl=en&sa=X&ei=L0cCVcT_OJDm8AWT-
4KoCg&ved=0CEcQ6AEwBQ#v=onepage&q=Learning%20Mobile%20App%20Development%3A%20A%20Hands-
on%20Guide%20to%20Building%20Apps%20with%20iOS%20and%20Android&f=false
5 6
7 8
https://s3.amazonaws.com/files.appannie.com/reports/1805_Report_2022_Forecast_EN.pdf
Understanding the Economics of App Stores
• Often developers are surprised that they have to pay App Monetization Strategies
Google and Apple 15-3o% of any (digital) sales or
subscription made in the app stores (whether from
paid apps or in-app purchases), while they don’t need
to worry about:
• Making money from apps is possible but difficult.
• Set up an entirely new sales channel.
• Run and operate the store. • There are hundreds of thousands of apps available.
• Setting up a new infrastructure to handle sales of mobile apps.
• The revenue generated from an individual app is typically very small.
• Difficult to do apps business because of not having • The app stores take a 15-30% cut of all the revenue that your app generates.
15-3o% profit margins.
• Instead, you can set up your own website and infrastructure, like Amazon • More importantly, how can you get a lot of people to pay you to use the app
(e.g., Kindle app). so that the revenue generated is enough to fund further development or
• Apple is particularly strict about restrictions on the purchasing of content outside the expansion?
app store, so Amazon isn’t even allowed to have a link in its app that takes users to their
store where they can buy the books. 9 10
• Notification Ads:
• Appear in the device's status bar for high visibility, but caution is needed to avoid overuse.
11 https://www.forbes.com/sites/steveolenski/2015/11/12/6-types-of-native-advertising-and-how-each-can-benefit-
12
your-business/#422568ab4455
Ad formats App Monetization Strategies: In-App Advertising
• Banner ad.
• Interstitial ad.
Advantages Disadvantages
• Rewarded video ad.
• Revenue generation. • User experience.
• No direct cost to users. • Ad blocking.
• Targeted advertising. • Privacy concerns.
• Flexibility in ad formats. • App performance.
13 14
https://community.kodular.io/t/kodular-premium/187508 15 16
Demo: Banner Ad, Interstitial Ad and Rewarded
Demo: In-App Advertising (Kodular Premium)
Video Ad
• Support a wide range of Ads • Adding a banner ad, interstitial ad and
providers. reward video ad.
• Kodular will take a little percentage • Explore how to reward the users who
of your earnings if you use their ads watched a video ad.
component (5%-30%).
• You can use your own AdMob
account and AdUnitId.
17 18
19 20
Example: eCommerce – Selling physical goods
Extensions: PayPal App Monetization Strategies: Freemium
• In the freemium business model, users pay nothing to download your app and are
offered optional in-app purchases for premium features, additional content, or
digital goods.
• Engaging both paying and non-paying users.
• Providing value for different types of paying users.
21 22
https://community.kodular.io/t/free-paypal-make-payments-in-your-app/74680
25 https://docs.kodular.io/components/monetization/general/in-app-billing/
26
https://www.youtube.com/watch?v=XNtB_Dv8HEs
27 28
App Monetization Strategies: Paid Apps App Monetization
Strategies: Paymium
• The simplest approach to monetizing an app is to charge for the download.
• In the Paymium business model, users pay to
• This app market is very price sensitive. The price of advertised in the app store and download your app and have the option to buy
the user decides, based on your description of the app, whether to buy it. additional features, content, or services through in-
• How to get enough customers to generate significant income? app purchases if they want to engage more deeply.
1. Raise the price of the app. However, Price increases > download decreases;
Lots of free apps; Advertising cost is high; Future updates are free. • Engaging both paying and non-paying users.
2. Add new app to charge again. • Providing value for different types of paying users.
• An up-and-coming approach to build apps for business use.
• Designed to solve a business problem > A business will be happy to pay the cost.
• It requires a business plan, and marketing - establishing a target market, and
directly contacting the market with information about your product.
• It also requires a potentially significant monetary investment.
29 30
31 32
Example: Pollfish (Kodular) Match App with Pricing Model
33 http://www.xconomy.com/san-Francisco/2011/04/15/choosing-the-right-business-model-for-your-app/ 34
35 https://moqups.com 36
Example: Creating a
Mobile App User Guide
• https://money.pro/guide/#budgets
39 1
Intended Learning Outcomes:
• Introducing Generative AI (ChatBot, ImageBot) and
Machine Learning (Teachable Machine)
Agenda • Mobile Commerce
• Extension: Dynamic component.
• Exercise: mCommerce Catalog + Dynamic
PART I
component. Generative AI and Machine Learning
https://ai2.appinventor.mit.edu/reference/components/experimental.html#ChatBot
https://appinventor.mit.edu/explore/ai-with-mit-app-inventor
2 3
https://community.kodular.io/t/paid-chatgpt-extension-to-create-fantastic-conversations-with-gpt- 8 9
models/242328
Teachable Machine
TEACHABLE MACHINE
Machine Learning
10 https://teachablemachine.withgoogle.com/ https://www.youtube.com/watch?v=T2qQGqZxkD0&t=3s
11
12 13
14 15
https://mit-cml.github.io/extensions/ http://ai2.appinventor.mit.edu/?locale=en&repo=http://appinventor.mit.ed
16 u/yrtoolkit/AI/aiaFiles/imageClassification/WhatIsIt.asc 17
18 19
https://www.youtube.com/watch?v=iOeHqRdRSHA&t=1s
20 21
TMIC: App Inventor Extension for the
Deployment of Image Classification Models
Exported from Teachable Machine
PART II
M-Commerce
https://community.appinventor.mit.edu/t/tmic-app-
Reference: Chap 2,4 [Skeldon]
inventor-extension-for-the-deployment-of-image-
classification-models-exported-from-teachable-
machine/64411
22 23
https://mit-cml.github.io/extensions/
Understanding
mCommerce Mobile Optimization: Mobile Payment Systems:
Ensure websites and apps Provide fast, secure, and
• Mobile Phones as Shopping Tools: Leveraging smartphones for more
than calls and texts; they're a vital part of shopping. are user-friendly on mobile straightforward payment
devices for easy shopping options for hassle-free
• Definition of mCommerce: Using mobile devices like phones and experiences. transactions.
tablets to purchase and sell goods and services online.
mCommerce
• Importance of mCommerce: With the ubiquity of smartphones,
mCommerce is critical for businesses to connect with consumers. Essentials Mobile Marketing: Utilize
• Growth of mCommerce: Rapid expansion due to convenience and the Simplified Shopping:
targeted marketing
ability to shop anytime, anywhere. Emphasize the convenience
strategies to offer timely
and enjoyment of shopping
• Market Potential: The mCommerce sector is expansive and continues and irresistible deals to
to offer significant growth opportunities for businesses. with just a few taps.
consumers on the go.
• Lifestyle Impact: mCommerce is altering shopping habits and daily
life, signaling a shift in consumer behavior.
24 25
The Future of mCommerce - A Vision of
Navigating mCommerce Challenges
Innovation
• Security as a Promise: Implement encryption and secure payment gateways to protect customer data. • Innovation Tapestry: mCommerce is evolving with new technology, changing consumer habits, and creative
innovation.
• Optimized User Experience:
• Prioritize app and website performance optimization. • AR Shopping: Seamlessly try products at home with AR, merging the physical and digital shopping
• Simplify navigation for a seamless journey from browsing to purchase.
experiences.
• AI at the Forefront: AI to revolutionize customer service with proactive assistance and personalized
• Case Study – Zappos / Etsy: shopping experiences.
• Addressed mobile platform issues with a redesign for better intuitiveness and faster load times.
• Resulted in higher customer retention and increased mobile engagement. • IoT Integration: Transform everyday items into smart shopping tools, automating purchases and offering
tailored suggestions.
• Resilience of mCommerce: Use challenges as catalysts for innovation and improved service. • Sustainability Focus: Align mCommerce with consumer values for ethical and sustainable shopping
practices.
• Adaptation is Key: Rapidly embrace and adapt to new technologies to enhance customer experience and
add value.
26 27
28 29
Mobile eCommerce Design
Includes:
1. Implement a login system, potentially using Firebase Authentication.
PART III 5. Design a shopping cart checkout system, considering the inclusion of discounts and gamification elements, such as a
membership point redemption system.
8. Offer customer service support, which could be through online chat, a form, or email.
9. Additional: Consider tracking shipping, establishing a refund policy, generating invoices, and maintaining a purchase
history.
30 31
https://www.simicart.com/blog/the-ultimate-guide-to-mobile-app-design-chapter-3-product-catalog-customer-account/ 32 33
Dynamic Component Extension
• This is Not the Kodular build-in Dynamic Component!!!
• Warning! Managing this component can be challenging and requires patience and
practice.
• If you are using Kodular, you will have the ability to create all Kodular components.
PART IV • Similarly, if you are using App Inventor, you will have the capability to create all
App Inventor components.
Extension: Dynamic Component
• Additionally, extension components are also supported.
34 35
Step 2 – UI Design
• On the Designer Screen make your Desired Design
using Static Components. (e.g., Arrangements,
Labels, Buttons, Textbox, Images, etc.)
• Then Connect to Companion and Test that
Everything is Looking Good as Desired and make
Adjustments if any needed.
36 37
Making The Skeletal Making The Skeletal Structure
Structure • To give input in “in” and “id”, you can use the following:
• Step 4
• Dynamic design is made with blocks
• First, we will drag a Create block from the
Dynamic component extension to the
workspace.
• Create block is provided with 3 Inputs -
1. in
2. ComponentName
• A global variable called “componentID" is used to provide a unique ID to every
3. id component.
• Having a unique ID for each component is necessary to ensure proper
identification and differentiation between components.
38 39
42 43
44 45
Load Properties
LOAD PROPERTIES
Prepare a list of dictionary of Product data
46 47
48 49
Load Properties
• To reset, remove all the created Dynamic Components.
• Reset the componentID back to zero.
• These two blocks function in the same way.
PART V
Tutorial Exercise:
eCommerce Catalog + Dynamic Component
(More details on the tutorial guideline)
50 51
52 53
Overall Summary
IS2023
Generative AI & Machine Learning
MOBILE APPLICATIONS
FOR BUSINESS
Mobile Commerce
(WEEK 8)
How to build an eCommerce app Group Project Proposal Feedback
Keyword Search
Extension: Dynamic Component Insert, Update, Delete Records
Tutorial Exercise: Showing Previous and Next Product
Tutorial: eCommerce Catalog + Dynamic Component
Reference: [Wolber]: David Wolber, Hal Abelson, Ellen Spertus, and Liz Looney, 2014, App Inventor 2: Create your own Android Apps, O'Reilly Media, 332 Pages, ISBN-13:
978-1491906842. http://www.appinventor.org/book2 54 1
PART I
PART II
Keyword Search Function
2 3
Implementing Keyword Search in Kodular
Example: Keyword Search Result
Shopping Catalog
1. In this week, we will focus on implementing keyword search functionality in the Kodular Shopping Catalog
application.
2. This builds upon the foundational knowledge acquired in the previous tutorial exercise, T7_Dynamic_Comp_Ext
(Dynamic Components and Lists of Dictionaries).
4 5
6 7
Create a TextBox on TextChanged Event
Handler
• Utilize a text box with an associated 'text
changed' event handler to facilitate the
search for products within a list.
• Employ a for-each loop to iterate through
all the products, comparing their names
against the text entered in the text box.
• To ensure case-insensitive comparison,
convert both the text from the text box and
the product names to uppercase.
PART III
• Should a match be identified, append the Response to Dynamic Component Click Event
corresponding result to a designated result
list.
• Conclude by displaying the search results in
a reusable CardView component.
8 9
To an editable product detail • Ensure that all pertinent blocks are updated in accordance.
screen.
10 11
Navigating Between Screens with SKU
Dynamic Component Click Event Handler
Values
• Send the starting value (SKU) from Screen1 to the ScreenUpdateDB.
• Dynamic Click Events in Kodular
• The button text contains the unique SKU value.
• Any component events are the most
complex form of an any component block. • When the product button on Screen1 is clicked, it will open the ScreenUpdateDB
• For any given event, the corresponding screen along with the value of the selected SKU.
any component event adds two more
parameters, component and
notAlreadyHandled, to the existing list of
event parameters, if any.
• The component parameter will be the component that triggered the event, such as Button.
• The notAlreadyHandled parameter is true if no other event block specifically handles the event for
component.
http://ai2.appinventor.mit.edu/reference/other/any-component-blocks.html
12 13
14 15
Create ScreenUpdateDB Reset/Restore the Firebase DB
• New Screen Creation: • Upload our default
• Initiate a fresh screen for updates.
product list to the
• UI Design: Firebase Database.
• Reference the provided diagram to craft the user
interface.
• Firebase Integration:
• Incorporate a Firebase database component.
• URL Customization:
• Update the default Firebase URL to match your
unique Firebase URL.
• Screen Initialization:
• Upon launching, display the product that the user
selected on Screen1.
16 17
18 19
Button New
• Create a procedure named “procReset” to:
• Empty all the textboxes.
• Clear the image.
• Users can input new records.
PART V
Insert
20 21
• Cloudinary Extension
• https://community.appinventor.mit.edu/t/cloudinar
y-an-extension-to-upload-files-to-cloudinary/30237
• ReadMediaPermissions Extension
• https://community.niotron.com/t/read-media-permissions-on-
android-13/15830?u=taifun
• FileTools Extension
• https://community.kodular.io/t/filetools-some-tools-to-work-
with-files/40051
22 23
• During Initialize, we use the
ReadMediaPermissions to check
the device’s SDK version.
Setup ReadMediaPermissions
• And then ask for different
permissions accordingly. Extension
Setup Properties: Cloudinary Extension
• We also call for the Cloudinary
initialize function • Add a
Cloudinary
Extension
component.
• Fill in your API
keys.
• You may find
them from
Cloudinary
Dashboard
• https://cloudin
ary.com/
24 25
26 27
Insert a New Product
PART VI
Delete
28 29
30 31
Update a Product
32 33
34 35
Final Review of Screen1
• T-shirt available stock has been updated
to 49.
•
•
The product "Laptop" has been removed.
A new product, Meta Quest 3, has been
added.
PART VIII
• Moving forward, we ought to conceal or Tutorial Exercise:
eliminate all four buttons as well as the Creating the ‘Show Previous Product’ and ‘Next Product’ buttons without any guidance
debug label.
36 37
Tutorial 8:
To-Do List:
Implement Previous and Next Product
Intended Learning Outcomes : • Heads up!
Upon successful completion of this exercise, students should be able to: • On the ScreenUpdateDB, we haven't yet added
the blocks for the 'Previous' and 'Next' buttons.
• Implementing real-time search functionality using dynamic components.
• The buttons should display either the preceding
• Effectively respond to button clicks. or subsequent product information, based on the
• Explore the procedures for saving and retrieving data via Firebase. current product's position. Be mindful of edge
cases, such as reaching the first or last record in
• You'll get the opportunity to flex your skills by implementing the "Show Previous the list.
Product" and "Next Product" buttons.
• That's gonna be your homework assignment.
• Sorry, no hand-holding on this one!
38 39
Overall Summary
IS2023
Group Project Proposal Feedbacks
MOBILE APPLICATIONS
FOR BUSINESS
Keyword Search (WEEK 9)
Group Project Skills:
Reference: [Wolber]: David Wolber, Hal Abelson, Ellen Spertus, and Liz Looney, 2014, App Inventor 2: Create your own Android Apps, O'Reilly Media, 332 Pages, ISBN-13:
978-1491906842. http://www.appinventor.org/book2 40 1
• Sample Solution
On the ScreenUpdateDB, we haven't yet added the blocks for the
'Previous' and 'Next' buttons.
2 3
SHOW PREVIOUS PRODUCT SHOW NEXT PRODUCT BLOCKS
BLOCKS WITH GESTURE
4 5
6 7
Shopping Cart Assumptions
• Assumptions: • Design the User Interface Check Out
Payment
View Records
8
Confirmation 9
10 11
Snapshot of Key Blocks Shopping Cart & Check out
It might not be possible to duplicate Screen1 directly, so let's create a
new screen that mirrors the layout of Screen1 and modify the blocks
to display the products added to the shopping cart.
We'll make use of labels to display the SKU, Product Name, Units in
Stock, and Price.
During the initialization process, we'll retrieve all the products from
TinyDB.
12 13
14 15
Payment Confirmation View Order Records
You should make more than one purchase to be able
to view your complete purchase history.
Given that the payment is not actual, we can use a Notifier to prompt the user to confirm their preferred
payment method. Subsequently, we'll update the TinyDB records.
The "Cart" tag in TinyDB will be cleared! We'll add a new record to a new TinyDB tag called 16 17
"PurchaseHistory".
18 19
Input Screen for Quiz
Scores
• Assuming we already have several quiz screens
developed, for testing purposes, we'll create an
additional screen.
• This screen will allow developers to directly input
a user's quiz score.
• This way, we can thoroughly test the
functionality of our dashboard.
The first image is a wireframe of the quiz app's dashboard. It The second image is a mockup that brings the wireframe to
outlines the basic structure and elements of the app, from life with a more detailed and colorful design. It provides a
navigation to content areas. clearer vision of how the final app might look, incorporating
20 21
modern design elements, fonts, and icons.
22 23
Leaderboard Extension – Sort Users
Snapshot of Score!
Key Blocks • After inputting quiz scores for Alice, Cathy, and Bob, we
can navigate to the Leaderboard to view their rankings.
• A FREE extension is used to sort the users based on their
scores.
24 https://community.kodular.io/t/free-v2-leaderboard-extension-sort-users-score 25
26 https://community.kodular.io/t/free-beta-simple-chart-extension-v2/99191 27
Snapshot of
Key Blocks
•
•
Retrieve quiz data
from Firebase.
Access the user's
PART IV
records using their Tutorial Exercise:
username.
• Visualize the user's Bar Chart
quiz performance
using a Pie Chart.
(More details on the tutorial guideline)
28 29
Reference: [Wolber]: David Wolber, Hal Abelson, Ellen Spertus, and Liz Looney, 2014, App Inventor 2: Create your own Android Apps, O'Reilly Media, 332 Pages, ISBN-13:
30 978-1491906842. http://www.appinventor.org/book2 31
Week 12 Team Number Week 13 Team Number
1 1
IS2023 2 2
MOBILE APPLICATIONS 3
4
3
4
FOR BUSINESS 5
6
5
6
(WEEK 10) 7
8
7
8
1 2
Week 12
1
Team Number Week 13
1
Team Number
Intended Learning
2 2 Outcomes:
3 3
4 4 Upon successful completion of this chapter, students
should be able to:
5 5
6 6 • Group Project Proposal Skills: Expandable List with a
7 7
Map.
8 8 • Describe the Sensors components.
• Describe the details of sensors: LocationSensor, Maps,
LUCKY DRAW PRESENTATION OrientationSensor, and AccelerometerSensor.
ORDER – S01
3 4
Introduction: Sensors
All of apps below are possible because the mobile
devices we carry have high-tech sensors for detecting
our location, orientation, and acceleration:
PART I • Point your phone at the sky, and Google Sky Map tells
you which stars you’re looking at.
Sensors • Tilt your phone, and you can control the game you’re
playing.
Reference: Chap 23 [Wolber]
• Take your phone on your daily run, and an app records
http://www.appinventor.org/bookChapters/chapter23.pdf your route .
5 6
7 8
The x, y and z axes of a
Accelerometer Sensor standard smartphone
Orientation Sensor
• Acceleration is the rate of change of velocity over time.
• xAccel (Positive when the device’s left side is raised, and negative • You can use the OrientationSensor for game-like apps in
when its right side is raised) . which the user controls the action by tilting the device.
• yAccel (Positive when the device’s bottom is raised, and negative when
its top is raised). • It can also be used as a compass to find out which direction
• zAccel (Positive when the device display is facing up, and negative (north/south, east/west) the phone is pointing.
when the display is facing down).
• The OrientationSensor has five properties:
• Responding to the Device Shaking • Roll (Left–Right) -90 to 90.
• E.g., Shaking event to make the kitty meow when • Pitch (Up–Back) -180 to 180.
the phone was shaken. • Azimuth (Compass) 0 to 360.
• Detecting Free Fall • Magnitude (how much the device is tilted) 0 to 1.
• If all the acceleration readings are near 0 (abs value • Angle (this sensor is reliable only when the roll angle is 0).
is less than 1), the device is free-falling to the ground.
• E.g., AccelerometerSensor.AccelerationChanged • Note that these angles work off of a different coordinate
event to detect when an elderly person has fallen and system than the one used in aviation (for yaw, pitch, and roll).
automatically send an SMS message out in response. 9 10
• These measurements assume that the device itself is not moving.
11 12
Fingerprint Sensor Location Sensor
• Reads fingerprints using the device's in- • Non-visible component providing location information,
built fingerprint scanner. including Latitude, Longitude, Altitude (if supported by the device), speed (if
supported by the device), and address.
• In order to function, the component must have its Enabled property set
to true, and the device must have location sensing enabled through wireless
networks or GPS satellites (if outdoors).
• The emulator does not emulate sensors on all devices. Code should be tested
on a physical device.
13 14
https://ar.appinventor.mit.edu/
15 16
Web Viewer Component
Kodular Maps Component
with Google Maps
• A two-dimensional container that renders map tiles • Web Viewer Component embeds web content into
in the background and allows for apps, including Google Maps.
multiple Marker elements to identify points on the
map. • Google Maps integration simplifies map functionality
for basic tasks.
• Implementation involves setting the Web Viewer's URL
• The Map component provides three utilities for to desired location.
manipulating its boundaries with App Inventor.
• URL can show specific coordinates, searches, or
directions.
• The user can pan the Map to any location. • Methods in blocks section update map based on user
inputs or events.
17 18
Which type of sensor is most beneficial for business • Expandable List with a Map
applications, and why?
19 20
A Static Approach vs. Dynamic
Components
• This approach we're demonstrating is static.
• While a dynamic approach could also be employed, given that the number of
districts is finite, the static method serves as a fitting demonstration.
PART III
Tutorial Exercise:
Android, Where is My Car?
Reference: Chap 7 [Wolber]
http://www.appinventor.org/bookChapters/chapter7.pdf
21 22
23 24
Creating Location-Aware Apps
Overall Summary
For Private Use:
• e.g., The Android, Where’s My Car? app (Chapter 7) .
• Let you remember a previous location so that you can
get back to it at a later time.
• Your location information is stored only in your device’s
database.
-
/
Gyroscope Sensor Z
-
- 0
27 28
Magnetic Field Sensor / Magnetometer
Gravity Sensor
• The magnetometer is used to measure magnetic flux
density or measure the ambient geomagnetic field.
• A non-visible component that measures the force
of gravity that is applied to a device on all three • This is the total magnetic field passing through a given area,
physical axes.
per metre squared, .
• Note: All readings are in SI units.
• The sensor will returns values with units of microtesla μT
for each of the three coordinate axes; x, y and, z.
• The magnetic flux density is quite similar to magnetic field
strength.
29 30
31 32
Near Field Communication Proximity Sensor
• Non-visible component to provide NFC capabilities. • A sensor component that can measure the proximity of
For now this component supports the reading and an object (in cm) relative to the view screen of a device.
writing of text tags only (if supported by the device).
• This sensor is typically used to determine whether a
• In order to read and write text tags, the component handset is being held up to a persons ear; i.e. lets you
must have its ReadMode property set
determine how far away an object is from a device.
to true or false respectively.
• Note: This component will only work on Screen1 of • Many devices return the absolute distance, in cm, but
any App Inventor/Kudular app. some return only near and far values. In this case, the
sensor usually reports its maximum range value in the
far state and a lesser value in the near state.
33 34
Thermometer /
Light Sensor
Temperature Sensor
• Physical world component that can measure the light/ illuminance level around • Physical world component that can measure the
the device in units of lux. ambient air temperature if supported by the
hardware.
• This sensor implementation varies across devices.
35 36
Barometer / Pressure
Sensor Hygrometer / humidity
• Physical world component that can measure the sensor
ambient air pressure if supported by the hardware.
• A sensor component that can measure the
• In units of hPa or mbar relative ambient air humidity.
• Most Android devices do not have this sensor.
37 38
39 40
Google Maps [Kodular]
IS2023
• You need to provide your Google Map API!. MOBILE APPLICATIONS
• A visible component that shows a map on the screen
powered by Google’s Maps service. FOR BUSINESS
• Palette>Google>Maps (WEEK 11)
• Many Events, Methods, and properties available Publishing Apps (Chap 16 [Iversen])
App Store Optimization (ASO)
Exercise: Prepare your Play store listing elements
41 1
Question Types: The exam will consist of 20% multiple-choice questions and 80% short essay type questions.
Outcomes: • Discuss process to publish your
Answer Format: Answers should be written in pen and pencil on paper. Please use a pencil for filling out the
app
multiple-choice bubble sheet.
Final Words: Please ensure your handwriting is legible and do not leave any question unanswered. Good luck!
• Discuss how to prepare for ASO
2 3
Publishing Apps
Intended Learning Outcomes:
Upon successful completion of this chapter, students should be
able to:
PART I • Describe basics of publishing apps for both consumer and
enterprise audiences and both platforms
Publishing Apps
https://books.google.com.hk/books?id=cqNdAgAAQBAJ&pg=PA344&lpg=PA344&dq=Learning+Mobile+App+Development:+A+Hands-
on+Guide+to+Building+Apps+with+iOS+and+Android&source=bl&ots=YTb1yxb-F3&sig=5CZ9ZFjdfBzcfYF5Va2gv4aHtpM&hl=en&sa=X&ei=L0cCVcT_OJDm8AWT-
4KoCg&ved=0CEcQ6AEwBQ#v=onepage&q=Learning%20Mobile%20App%20Development%3A%20A%20Hands-
on%20Guide%20to%20Building%20Apps%20with%20iOS%20and%20Android&f=false
4 https://developer.android.com/distribute/best-practices/launch/launch-checklist 5
• Restricted Content • The finished app has to be available to complete the publishing
• People from all over the world use Google Play to process
access apps and games every day. Before submitting
an app, ask yourself if your app is appropriate for • Apps are made available to their audience by publishing them
Google Play and compliant with local laws.
• Child Endangerment • The manner of publication is dependent on the target audience
• Inappropriate Content and the platform
• Financial Services
• Gambling • The two primary audiences are typically:
• Illegal Activities 1. The employees of an organization (Enterprise) for which the app was
• User Generated Content developed
• Unapproved Substances 2. The public
6 7
https://play.google.com/about/restricted-content/child-endangerment/
App Distribution Android Play Store
• Publishing apps has both similarities and differences in Android and iOS
Publishing
• They both require the same type of information to be entered for the app • An Android app is published through the Developer
that is to be sold Console (https://play.google.com/apps/publish/)
• To publish apps, you need to sign up as a Google developer.
• However, the exact procedure is different
• The cost is a one-time fee of US$25, which must be paid
• Prior to publication of an app, thorough testing is required from a Google Wallet account.
• An app that crashed frequently or does not do what it says it does will not
pass the Apple review process • If you are going to sell your apps, you will need this account
https://www.youtube.com for payments
• An Android app that has the same problems may be allowed to be
published, but it will get bad reviews and may be eventually removed by /watch?list=PLl- • The account can be set up through the console.
Google K7zZEsYLmOF_07IayrTnt • After you have set up all your accounts, you are ready to
• Firebase App Distribution can distribute pre-release versions of your app evxtbUxDL&time_continu publish
to your trusted testers e=21&v=SiPOaV-5j9o
https://firebase.google.com/products/app-distribution 8 9
10 11
App Store Optimization
What is App Store Optimization (ASO)?
App Store Optimization (ASO) is the process of optimizing mobile apps for the
purpose of achieving a higher rank in the app store search results and top
charts rankings. This way, more people can find your app and download it.
PART II Due to its similarities to search engine optimization (SEO) for websites, app
store optimization is also referred to as App Store SEO, App Search
Optimization, and Mobile App SEO.
App Store Optimization (ASO)
The basic principle of ASO, besides high rankings in the app store, is the focus
on click-through rate (CTR). This means you have to convince people. You can https://appradar.com/academy/wh
do so by optimizing your App Name, Title, Logo, Screenshots and App Rating.
at-is-app-store-optimization/
More downloads mean more users and more users mean more revenue.
12 13
How is App Store Optimization done? Checklist for your app title
First things first: Establish a Clear ASO strategy
App Ratings and Reviews 30 characters long the Apple App Store
https://appradar.com/academy/what-is-app-store-optimization/ 14 15
When doing your keyword research
Checklist for your app description
consider the following questions
What are the main features of your app?
Informative
What are the synonyms describing the features?
Easy to understand
What are similar apps called? Clearly structured (bullet points, emojis)
What is your app’s category? Includes keywords (especially with Google Play)
Which terms do people commonly use in this category? Up to 4000 characters long
https://ahrefs.com/blog/google-keyword-planner/
16 17
Checklist for App A/B testing Checklist for your Screenshots & Videos
Analysis & Brainstorming
Creating Variations
To start, try and come up with at least 50 app store keywords. What is the best way to avoid bad reviews by app users
when keeping up new app versions in the platform?
ASO tools will provide you many keywords to consider. Guarantee quality
More testing and testers.
.
Set the user’s expectations right
Now with your initial set of app store keywords, it’s imperative you develop a strategy to filter and If you set the right expectations upfront, users will give you a leeway in the event of a bad service.
select the best keywords for your app. ASO tools can help you with this optimization process.
Make it easy for the user to rate your app
Ask user review within app. Editors Note: Apple has been removing apps that give users incentives to review apps.
These tools provide the popularities (or search traffic) as well as difficulties (or chances) of your app
store keywords. Exceptional customer service: provide direct support to users
Include Feedback button; Include users instant communication, reply instantly to a negative review.
In general, carefully select around 25 app store keywords for the next release of your app.
20 21
PART III • Optimize an Android apps and get more downloads & revenue with ASO
Tutorial Exercise:
Prepare your Play store listing elements
(More details on the tutorial guideline)
22 23
Google Play Store
Publishing Apps (Chap 16 [Iversen])
listing elements
•
•
Keyword research
Category
Overall
• Title Summary & App Store Optimization (ASO)
•
•
Short description
Description
Reference
• Icon design Exercise: Prepare your Play store
• Screenshots listing elements
• Video
24 25