student developer challenge
DESCRIPTION
SERI Presentation covering Samsung Apps, the S Pen and ChatOn features.TRANSCRIPT
![Page 1: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/1.jpg)
Keith Bauwise
![Page 2: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/2.jpg)
Copyright © 1995-2012 SAMSUNG All rights reserved
1. Opportunity: Samsung Apps
2. Developer Support
3. Innovative Samsung Technologies
CONTENTS
![Page 3: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/3.jpg)
Copyright © 1995-2012 SAMSUNG All rights reserved
1. Opportunity: Samsung Apps
2. Developer Support
3. Innovative Samsung Technologies
CONTENTS
![Page 4: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/4.jpg)
Each with its own ecosystem Now
![Page 5: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/5.jpg)
![Page 6: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/6.jpg)
![Page 7: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/7.jpg)
Samsung Apps Readers Hub
Media Hub
Game Hub Music Hub
Learning Hub
![Page 8: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/8.jpg)
or
In App Purchase offers an easy and effective way to monetize while keeping users interested and involved in an app.
Monetization: InApp Purchase
![Page 9: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/9.jpg)
Monetize Applications with Easy-to-use Tools Mobile & Tablet PC Advertising
Monetization: AdHub
Support for several Click-to-actions
App down Landing Page Call
Various Types of AD
Mobile In App
Mobile Web
TV In App
Mobile & Tablet Device bada & Android OS
![Page 10: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/10.jpg)
11 / 문서의 제목
Time-limited application trying or renting. Apps can be used for certain period and extended.
* Application information may differ from the actual product appearance.
Monetization: Try’n Play & Rent’n Play
![Page 11: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/11.jpg)
Copyright © 1995-2012 SAMSUNG All rights reserved
1. Opportunity: Samsung Apps
2. Developer Support
3. Innovative Samsung Technologies
CONTENTS
![Page 12: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/12.jpg)
Samsung Ecosystem
SDKs / IDEs Technical Contents Developer Events
TECHNICAL RESOURCES
developer.samsung.com Premium Support Service
Direct App Sales AdHub
In-App Purchase
TECHNICAL SUPPORT
Samsung Apps Multiple Devices
Multiple Platforms
APP MARKET
REVENUE MODELS
![Page 13: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/13.jpg)
Development Process
Develop Test Publish Promote
![Page 14: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/14.jpg)
developer.samsung.com
![Page 15: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/15.jpg)
Development Process
Develop Test Publish Promote
![Page 16: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/16.jpg)
RTL (Remote Test Lab)
![Page 17: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/17.jpg)
Development Process
Develop Test Publish Promote
![Page 18: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/18.jpg)
Submit App
![Page 19: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/19.jpg)
Copyright © 1995-2012 SAMSUNG All rights reserved
Certification Process
App Publication
Submit App
![Page 20: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/20.jpg)
Certification Process
![Page 21: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/21.jpg)
Development Process
Develop Test Publish Promote
![Page 22: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/22.jpg)
Boost sellers’ profit by providing a variety of promotion opportunities through seasonal/theme promotions or seller promotions
MARKETING SUPPORT: PROMOTION
Seasonal/Theme Promotions Seller Promotions
![Page 23: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/23.jpg)
Select high quality apps to be bannered/featured to maximize the degree of exposure of apps in the storefront.
24 / 문서의 제목 24 / 문서의 제목
50 개국 (1/19)
MARKETING SUPPORT: BANNER/FEATURE
![Page 24: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/24.jpg)
Get connected with Samsung Apps Fans or Followers for the latest Samsung Apps news, events and any on-going promotions through SNS marketing activities
MARKETING SUPPORT: SOCIAL MEDIA
twitter.com/samsungapps
youtube.com/samsungapps
![Page 25: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/25.jpg)
Copyright © 1995-2012 SAMSUNG All rights reserved
1. Opportunity: Samsung Apps
2. Developer Support
3. Innovative Samsung Technologies
CONTENTS
S Pen
ChatON
![Page 26: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/26.jpg)
Copyright © 1995-2012 SAMSUNG All rights reserved
S Pen
![Page 27: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/27.jpg)
WHAT IS S PEN? A New type of input device
EMR (Electromagnetic Resonance) Solution
- Based on dual capacitive touch and EMR pen technology
Precise and quick response Supports pen pressure
1
Advantages of S Pen
No power consumption Lightweight hardware
2
Side button, pen hovering A new UX
3
![Page 28: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/28.jpg)
APPLICATION AREA EXTENSION Various possibilities with the S Pen in various app categories
B2B Education SNS
Game Memo & Planner
Graphics
![Page 29: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/29.jpg)
NEW UX SCENARIO : BASIC
INTERACTION Can replace existing touch input methods
Activation, Coordinates,
Pressure
Touch Y : 0.0 X : 0.0 X : 130.0
Pen Y : 150.36 Y : 250.36 Y : 350.36 Y : 450.36 Y : 550.36 Y : 650.36 Y : 750.36 Y : 850.36 Y : 960.20 Y : 1060.20 Y : 1160.20 X : 590.0 Y : 150.36 Y : 250.36 Y : 350.36 Y : 450.36 Y : 550.36 Y : 650.36 Y : 750.36 Y : 850.36 Y : 960.20 Y : 1060.20 Y : 1160.20
![Page 30: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/30.jpg)
New UX Scenario: Pen Hovering Recognize pen events without contact
No contact
Screen
![Page 31: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/31.jpg)
Recognize the side button with or without contact
Side Button Recognition
Call a Function
New UX Scenario: Side Button
![Page 32: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/32.jpg)
libspen22.jar Dev Guide Sample
Application (with
source code)
USING SDK
Contents of the SDK
To get the new version of the S Pen SDK, please visit : - http://developer.samsung.com/android/spen.sdk
![Page 33: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/33.jpg)
Libraries Add External JARs libspen22.jar Java Build Path
Java Build Path
Libraries
libspen22.jar Add External JARs…
USING SDK Adding the JAR file to your project
![Page 34: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/34.jpg)
CODE Sample app
![Page 35: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/35.jpg)
CODE 1. Add SCanvasView in layout xml
Graphical layout
![Page 36: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/36.jpg)
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RelativeLayout;
import com.samsung.spensdk.SCanvasConstants;
import com.samsung.spensdk.SCanvasView;
public class MainActivity extends Activity {
CODE 2. Packages to import
Import com.samsung.spensdk.* Import com.samsung.sdraw.* Packages to use S Pen features
![Page 37: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/37.jpg)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageBtn = (Button) findViewById(R.id.buttonImage);
mImageBtn.setOnClickListener(imageBtnClickListener);
mSCanvas = (SCanvasView) findViewById(R.id.canvas_view);
mPenBtn = (Button) findViewById(R.id.buttonPen);
mPenBtn.setOnClickListener(mBtnClickListener);
mPenBtn.setTextColor(Color.WHITE);
mEraserBtn = (Button) findViewById(R.id.buttonEraser);
mEraserBtn.setOnClickListener(mBtnClickListener);
...
CODE 3. Initialize controls
![Page 38: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/38.jpg)
OnClickListener imageBtnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, SELECT_PICTURE_ACTIVITY_REQUEST_CODE);
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imag
eReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
if( (resultCode == RESULT_OK) &&
(requestCode == SELECT_PICTURE_ACTIVITY_REQUEST_CODE) )
{
Uri selectedImage = imageReturnedIntent.getData();
...
mSCanvas.setData(buffer);
}
}
CODE 4. Image button handler
![Page 39: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/39.jpg)
OnClickListener mBtnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
int nBtnID = v.getId();
// If the mode is not changed, open the setting view. If the mode is
same, close the setting view.
if(nBtnID == mPenBtn.getId()){
if(mSCanvas.getCanvasMode()==SCanvasConstants.SCANVAS_MODE_
INPUT_PEN){
mSCanvas.toggleShowSettingView(SCanvasConstants.SCANVAS_SET
TINGVIEW_PEN);
}
else{
mSCanvas.setCanvasMode(SCanvasConstants.SCANVAS_MODE_INPUT_
PEN);
mSCanvas.showSettingView(SCanvasConstants.SCANVAS_SETTINGVI
EW_PEN, false);
updateModeState();
}
...
CODE 5. Pen/Eraser button handler
![Page 40: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/40.jpg)
private OnClickListener undoNredoBtnClickListener = new OnClickLis
tener() {
@Override
public void onClick(View v) {
if (v.equals(mUndoBtn)) {
mSCanvas.undo();
} else if (v.equals(mRedoBtn)) {
mSCanvas.redo();
}
mUndoBtn.setEnabled(mSCanvas.isUndoable());
mRedoBtn.setEnabled(mSCanvas.isRedoable());
}
};
CODE 6. Undo/Redo button handler
![Page 41: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/41.jpg)
CODE 7. Final app - output
![Page 42: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/42.jpg)
Copyright © 1995-2012 SAMSUNG All rights reserved
ChatON
![Page 43: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/43.jpg)
ChatON Main Features
Multi & Cross Platform Messaging Service
Enhanced 1:1 & Group Chat
Multimedia Content Sharing & Trunk
Animation Message (AMS) Anicon (Animated Emoticons)
![Page 44: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/44.jpg)
Open APIs allowing 3rd party apps to…
Access ChatON services and user base
Utilize ChatON features (messaging, etc.)
The ChatON API
ChatON Service 3rd Party Apps API
![Page 45: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/45.jpg)
The ChatON API: Server-side and Client-side
ChatON Service 3rd Party Apps API
Client-side API Server-side API
![Page 46: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/46.jpg)
Client-side API
•Get buddy list
•Get profile picture
•Add buddy
•Get my profile
Gra
ph
U
tili
ty
Me
ssa
ge
•Check ChatON installation
•Open ChatOn download page
•Open a chat room
•Send text message
•Send text message with url
•Sent multimedia message
•Sent multimedia message with text
![Page 47: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/47.jpg)
Client-side API
1. Get Buddy List
GraphAPI.addBuddy(context, phoneNumber) The following steps describes how to add a buddy to my buddy list:
1.Select AddBuddy
2.Type in the buddy’s phone number
3.Click “Add Buddy” button
4.Add Buddy screen gets displayed
5.Click “+” button to complete add buddy
Graph API
![Page 48: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/48.jpg)
public void clickHandler(View v) {
if( mEditPhoneNumber == null ) {
return;
}
String phoneNumber = mEditPhoneNumber.getText().toString();
switch(v.getId()) {
case R.id.buttonAddBuddy:
// call addBuddy API
int nResult = GraphAPI.addBuddy(this, phoneNumber);
if( nResult == ChatONAPI.RESULT_CODE_FAIL_EXCEPTION_ILLEGAL_ARGUMENT ) {
Toast.makeText(this, "PhoneNumber's length must be greater than or equals to 1 and be less than or equals to 20", Toast.LENGTH_SHORT).show();
}
else if( nResult == ChatONAPI.RESULT_CODE_FAIL_API_NOT_AVAILABLE ) {
Toast.makeText(this, "API isn't availble. please check your ChatON version.", Toast.LENGTH_SHORT).show();
}
break;
} }
CODE
![Page 49: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/49.jpg)
Client-side API
1. Get Buddy List
MessageAPI.sendTextMessageWithURL(context, text, url) The following steps describes how to send a message and an URL to ChatON buddies:
1. Select SendTextMessageWithURL 2. Type in a message and an URL 3. Click “Send Text Message With URL” button 4. Buddy list screen appears to allow you to select target buddies or a chat room 5. The typed in message will be delivered when the selection is completed
Message API
![Page 50: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/50.jpg)
public void clickHandler(View v) {
if( mEditSendText == null || mEditSendUrl == null ) {
return;
}
String text = mEditSendText.getText().toString();
String url = mEditSendUrl.getText().toString();
if( TextUtils.isEmpty(text) || TextUtils.isEmpty(url) ) {
Toast.makeText(this, "Illegal Argument!!\nPlease, check argument", Toast.LENGTH_SHORT).show();
return;
}
switch(v.getId()) {
case R.id.buttonSendTextUrl:
if( text.length() > 0 ) {
// call API
int nResult = MessageAPI.sendTextMessageWithURL(this, text, url);
// check result
switch(nResult) {
case ChatONAPI.RESULT_CODE_FAIL_EXCEPTION_ILLEGAL_ARGUMENT:
Toast.makeText(this, "Illegal Argument!!\nPlease, check argument", Toast.LENGTH_SHORT).show();
break;
case ChatONAPI.RESULT_CODE_FAIL_EXCEPTION:
Toast.makeText(this, "Exception!!\nPlease, check argument", Toast.LENGTH_SHORT).show();
break;
case ChatONAPI.RESULT_CODE_FAIL_TEXT_LIMIT_EXCEEDED:
Toast.makeText(this, "Message(Text + Url)'s length must be greater than or equals to 1 and be less than or equals to 2000", Toast.LENGTH_SHORT).show();
break;
case ChatONAPI.RESULT_CODE_FAIL_API_NOT_AVAILABLE:
Toast.makeText(this, "API isn't availble. please check your ChatON version.", Toast.LENGTH_SHORT).show();
break;
}
}
break;
} // switch(v.getId())
}
CODE
![Page 51: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/51.jpg)
Client-side API
1. Get Buddy List
MessageAPI. UtilityAPI.isChatONInstalled(context)
Utility API
public class IsChatONInstalledActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.is_chaton_installed);
}
public void clickHandler(View v) {
switch(v.getId()) {
case R.id.buttonIsChatONInstalled:
// call API
boolean isInstalled = UtilityAPI.isChatONInstalled(this);
// check result
if( isInstalled ) {
Toast.makeText(this, "ChatON is installed !!", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(this, "ChatON is not installed !!", Toast.LENGTH_SHORT).show();
}
break;
}
}
}
![Page 52: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/52.jpg)
ChatONAPI.jar
Online Guide + Sample Application (with source code)
USING SDK
Contents of the SDK
To get the new version of the ChatON SDK, please visit : - http://innovator.samsungmobile.com/clientApi.do?platformId=16&pgId=03
![Page 53: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/53.jpg)
Using ChatON API 1. Request API Access Key
2. Download and include ChatONAPI.jar library
4. Code !
3. Include access key into AndroidManifest.xml
<uses-permission android:name="com.sec.chaton.TOKEN_XXXXX" />
![Page 54: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/54.jpg)
Copyright © 1995-2012 SAMSUNG All rights reserved
developer.samsung.com
![Page 55: Student Developer Challenge](https://reader033.vdocuments.us/reader033/viewer/2022051412/54825737b47959fb0c8b47a6/html5/thumbnails/55.jpg)
Wrap-up
STUDENT DEVELOPER CHALLENGE
DEVELOPMENT PROCESS
S PEN
DEVELOPER SUPPORT
CHATON