Upload
vladimir-kulyukin
View
1.064
Download
1
Tags:
Embed Size (px)
Citation preview
MobAppDev
Sketchy Impressions of Fall 2013 AnDevCon
Vladimir Kulyukin
www.vkedco.blogspot.comwww.vkedco.blogspot.com
Background
● Fall 2013 AnDevCon was held in San Francisco, CA, in 11/12/2013 - 11/15/2013
● There were many interesting & fascinating workshops, seminars, and discussions
● This presentation summarizes my rather sketchy impressions (it is impossible to attend all talks) of the conference and gives you some R&D pointers for the future
Outline
● Eclipse IDE vs. Android Studio● Augmented Reality (AR)● Android & Wearable/Mobile Computing● Android & Cloud Computing● Android & .NET
Eclipse IDE vs. Android Studio
New Android IDE
● Eclipse has been a de-facto standard for Android development
● JetBrains has offered an alternative IntelliJ IDEA ● Google I/O 2013 has introduced a new Android
IDE called Android Studio ● Android Studio is based on the free community
edition of IntelliJ IDEA
Should I Switch?● If you have a big Android project or a tight delivery deadline, I
would stay with Eclipse IDE● Eclipse IDE has a large code, documentation, and tutorial base● Projects demonstrated/developed at AnDevCon with Android
Studio were pretty basic, which is to be expected for a new IDE● Android Studio is something to put on your watch list and play
with as time permits● Do not pay much attention to “it's a giant leap forward!”
mantras, just watch the support base
Augmented Reality
What is AR?
Augmented reality (AR) is a live, direct or indirect, view of a physical, real-world environment whose elements are augmented (or supplemented) by computer-generated sensory input such as sound, video, graphics or GPS data. It is related to a more general concept called mediated reality, in which a view of reality is modified (possibly even diminished rather than augmented) by a computer.
source: http://en.wikipedia.org/wiki/Augmented_reality
What Does AR Do?● AR aligns real objects with virtual objects● AR Examples:
Display free office information when an office building is recognized
Display bus route information when a bus stop sign and its number is recognized
Play an audio file about a building when a GPS fix places you next to that building
● AR applications must run in real time to be useful
AR Application Domains
● Navigation● Education● Tourism● Medicine● Gaming
AR with Rajawali
Go to this github url on how to download Rajawali
Problem
Build an application that rotates a sphere horizontally and/or vertically and mounts on that sphere different textures.
Coding Steps
● Set up an Android application project in Eclipse IDE
● Include the Rajawali jar library● Extend the main activity from RajawaliActivity● Extend a render class from
rajawali.render.RajawaliRenderer● Code up your logic in the renderer class● Add to the main activity class the render class as a
member
Main Activitypublic class RajawaliSphere_Activity extends RajawaliActivity {
private RajawaliSphere_Renderer mRenderer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.mRenderer = new RajawaliSphere_Renderer(this);
this.mRenderer.setSurfaceView(mSurfaceView);
super.setRenderer(mRenderer);
}
}
source code is in RajawaliSphere_Activity.java
Rendererenum ROTATION { VERTICAL, HORIZONTAL }
public class RajawaliSphere_Renderer extends rajawali.renderer.RajawaliRenderer
{
DirectionalLight mLight;
Object3D mSphere;
Context mContext = null;
Camera mCamera = null;
ROTATION mRot = ROTATION.VERTICAL;
int mRotSpeed = 1;
…
}
source code is in RajawaliSphere_Renderer.java
Rendererpublic void initScene() {
mLight = new DirectionalLight(1f, 0.2f, -1.0f);
mLight.setColor(1.0f, 1.0f, 1.0f);
mLight.setPower(2);
try {
Material material = new Material(); setRotHorizontal();
material.addTexture(new Texture("bhagavatgita", R.drawable.bhagavatgita_v1_large));
material.setColorInfluence(0);
mSphere = new Sphere(1, 20, 20);
mSphere.setMaterial(material);
getCurrentScene().addLight(mLight);
super.addChild(mSphere);
} catch (TextureException e) { e.printStackTrace(); }
getCurrentCamera().setZ(4.2f);
}
source code is in RajawaliSphere_Renderer.java
Rajawali Examples Demo
Android & Mobile/Wearable Computing
Mobile Sensors
● Accelerometer● Magnetometer ● Gyroscope● Pressure● Light● Gesture● GPS● Wi-Fi● Camera
Context
● The concept of context is becoming increasingly more sophisticated
● Context has been used to monitor activities: how many calories have been consumed or how many steps have been taken
● Context is and will increasingly be used for event detection, data analysis, and pattern detection
COM.GOOGLE.ANDROID.GMS.LOCATION
● This package contains the Google Activity Recognition SDK
● It has classes such as ActivityRecognitionClient, ActivityRecognitionResult, DetectedActivity, etc.
● DetectedActivity can have values such as IN_VEHICLE, ON_FOOT, ON_BICYLE, etc
Android & Cloud Computing
Android OS as a Server OS
● Over 60% of the server market is Linux/Unix/FreeBSD
● Android OS is a flavor of Linux● Linux is used on servers● Hence, Android OS can be used on servers● It is far easier to find Android developers than
Linux developers
Android OS as on the Cloud
● There is a massive server migration to the cloud
● A lot of cloud services are supported by Linux
● Since Android OS is Linux, it can support cloud computing
Android & .NET
What is Mono?
● Open source implementation of .NET● Xamarin.Android is an Android IDE for .NET● The developer can use C# and Windows
Ecosystem● No cost of learning Eclipse and/or Java
References
● J. Wilson. Understanding Android Studio and the Android Developer Toolset. AnDevCon. Nov. 2013, San Francisco, CA
● R. Sanderson. Sensors and Context-Awareness in a Mobile Device. AnDevCon. Nov. 2013, San Francisco, CA
● D. Ippel. Augmented Reality + 3D The Easy Way. AnDevCon. Nov. 2013, San Francisco, CA
● R. Munitz. Building Android for the Cloud: Android as a Server. AnDevCon. Nov. 2013, San Francisco, CA
● J. McClure. What is Xamarin.Android? AnDevCon, Nov. 2013, San Francisco, CA