You know what's better than a powerful computer in your pocket that can do a lot of what you do on your laptop? A powerful computer on your wrist that can augment a powerful computer in your pocket that can do a lot of what you do on your laptop!
We will compare and contrast Google's and Apple's strategies, hardware, and software. We will also look at where smartwatches began. We'll also get into wearable, personal computing at large.more ...
As we discussed in the monetization lecture, determining which platform to build for can be a tricky decision. There are several aspects to consider:
So, the answer than many compaines come to is that they need to develop for both Android and iOS to hit more of their market. One way to do this is to have two dedicated teams, one for each platform, that collaborate on requirements and design. This is how many mobile shops like WillowTree opperate.
However, in a large company whose main business is not producing software, there's a desire to optimize the time needed to produce an app. Also, if updates need to occur, it's best to make those changes in one place. Hence the desire for cross-platform development.
Cross-platform development for mobile basically comes in two forms:
Some tools and links you should look at:
Let's start by going over some privacy policies!
So, you're gonna make it rich in the app store? (We'll stipulate that making custom apps for a company is a much more stable way to earn a living making mobile apps.)
Let's look at some facts:
How are you going to get noticed? How are you going to earn enough to make the next app? How do you get the money to make the first app?
Let's start by discussing the differences in the two stores, then get into pricing schemes. Note that the following data is from mid 2014.
Apple App Store
Spring 2017 Update
Google Play Store
Spring 2017 Update
Highlight quotes from the article linked below:
So which platform do you build for? Here's a good synopsis of how to choose: https://clearbridgemobile.com/ios-vs-android-app-development-which-platform-should-you-develop-for/more ...
The idea of analytics is the gathering, processing, and interpreting of data. The concept of analytics is not new (consider any program you have used that asked to send data back to the developers), but the ready capability to do analytics with web services and cloud computing has made it now more easily available to anyone.
We will focus on the Firebase Analytics (https://firebase.google.com/docs/analytics/) platform today, specifically looking at some example Android code.
Let's start by trying to create some data. Download the Android Studio project AnalyticsExample, run it, and press some buttons!
Or, run it on your own Android device (assuming developer mode is on): https://cs4720.cs.virginia.edu/analyticsexample.apk
The code isn't all that exciting... the best part is that we can add events to actions that we want recorded. For instance, when you press the "Feature 1" button, here is what is called:
Toast.makeText(this, "Tychonievich is very smart. He likes Feature 1. So you are smart too!", Toast.LENGTH_LONG).show(); Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "Feature 1"); bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "Feature 1"); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
Let's go see if we can see any of the data: https://console.firebase.google.com
Now that you've seen the system in action, what sort of thing can and should we record about our apps?
There are two vectors to consider: who is using the app and what are they doing in the apps.
Let's start with the what. Software engineers call a profile and likelihood of how often certain features are used an operational profile. Operational profiles are incredibly important to manage how you build and maintain an application. Consider features like print and save in a word processor versus mail merge. Some features simply require more attention because they are going to be used extensively. How do you know what parts of your app people use the most? Wouldn't you want to know that? How would you use that data?
Then there's the who. If you could pair the operational profile with info regarding your users, then your development could be even more targeted. What aspects of a person would you be most interested in?
What pieces of data would you want from your app to make it successful?
Between the information we gather through sensors and also through analytics procedures, we need to be fully transparent regarding what we do with users' data.
Today you will begin to create a digital wireframe of your final project app. Please upload a PDF copy to the root of your final project repository AND each partner should submit a copy to the appropriate assignment in Collab. We are looking to see that you have a good idea as to what your project should look like. We will not be comparing this wireframe to your final app at this stage.
You can use whatever digital tools you would like to create the wireframe. There are dedicated wireframing tools available out there - some free, some pay. You are welcome to explore these options, or use something else, such as Photoshop.
Some of the ones I like are:
You MUST use some digital tool to create your wireframes. Hand drawing it and then taking a picture is not acceptable.
Submissions are due before class begins on Monday morning, where we will discuss some of your wireframes.
No Audio Todaymore ...
Today we will keep working on the movie theater wireframes and will talk about your design decisions as we share the diagrams with the class.
No Audio Todaymore ...
Now that we have looked at some user interfaces, we're going to discuss how to start making our own.
How do we go about coming up with an interface wireframe?
Make sure to have read the reading for today from developer.android.com!
How are users going to be using your app? What will they want to do? Come up with a list!
Based on the features above, come up with a screen for each feature.
Now that you have the screens, how can you reorganize or revise them to combine similar features, link things together, etc.
Which screens are "siblings," in that they appear on the same tab bar and users can flip between them? Which screens are parent/child, such as a list of items and then the details of a particular item? Decide on these relationships and map them out!
Where do you have "lateral" navigation between sibling screens? Where do you have "descendent" navigation to child screens? How will you make these transitions? Lay them out on your wireframe! Now, how do you go from one screen to the next? Tabs? Swipe left to right? A list of items? A button? How do you show your current state/location?
When do you want to go back a screen in the order you opened them, and when do you want to go "up a level" in your navigation tree? When is each appropriate? How do you know what the user wants? (i.e. temporal navigation vs. ancestral navigation)
Physical wireframes are great for getting your ideas down quickly! You can transfer to digital later too for more interactive designs to show clients.
Consider different screen sizes and orientations. You can repeat this process for each permutation as needed or you can do them as you go.
Today, you should work with a partner (anyone is fine) to draw a wireframe!
We are going to design an app for people to order food in a movie theater. Let's pretend that in this high-end theater you can order drinks, snacks, and meals right from your seat on your phone and a server will bring it to you. Consider a few things:
You can use your imagination to add features/constraints for your design. For instance, you might want to assume people purchased assigned seats in the theater or can link their ticket to the app.
Draw your app on the handouts provided and then you'll be called up front to share your designs!
Ahead of our discussion on Monday regarding how to do wireframes, I want you to take just a little bit of time to think about what a wireframe is and how they might be used. This is a simple "prep for lecture" kind of assignment.
Before lecture on Monday, you need to do the following and submit to the appropriate assignment in Collab: