Pages

Tampilkan postingan dengan label App Builder. Tampilkan semua postingan
Tampilkan postingan dengan label App Builder. Tampilkan semua postingan

Jumat, 18 Mei 2012

Three ways game developers can avoid cloning

Takeaway: Two attorneys offer gaming companies advice on actions to take that may help them avoid becoming victims of cloning.

The mobile and social gaming industry is experiencing an invasion of clones. While cloning has a long and varied history, it has become more prevalent with the explosion of social and mobile games. As development times decrease and the useful lifetime of games diminishes, cloning has become more lucrative: games are easier to copy and there are more of them to clone.

Historically, developers have used copyrights and patents to protect video games. Copyright protection can extend to the expressive, non-functional elements of a game, such as audiovisual display and the underlying source code, but not the ideas behind the game itself. Patent protection extends to the functional aspects of games, such as gameplay mechanics. But both copyright and patent laws tend to favor would-be copiers, rather than game developers. While traditional game developers may have had the resources to engage in costly legal battles and reasonably expected a long stream of revenue from popular games that justified the expense, that is not the situation in which most game developers find themselves today. In addition, the costs of being the victim of cloning has increased as developers invest more and more into marketing their games, only to see knockoffs emerge after a game reaches threshold popularity.

The limitations of intellectual property rights to deter cloning are a sore spot for the industry. Indeed, even cases in which a defendant had access to a competitor’s prototype and then created a game of striking similarity may not survive.  For example, in 2011, Spry Fox sued LolApps for copyright infringement and false designation of origin over Spry Fox’s copyrighted Triple Town game. LolApps had previously been in negotiations with Spry Fox to develop and launch TripleTown on Facebook. Spry Fox entered into a non-disclosure agreement with LolApps pursuant to which Spry Fox granted access to a closed, beta version of TripleTown to allow LolApps to evaluate the game for publication. But six months after signing the NDA, LolApps abruptly ended negotiations and launched its clone, Yeti Town. A motion to dismiss is currently pending before the court, and the arguments made in briefing go to the very scope of copyright protection in video games. If Spry Fox’s complaint is dismissed, it will further signal that intellectual property rights alone are inadequate to completely remedy cloning.
So what is a gaming company to do? While it is important to maintain intellectual property rights where appropriate, there are other actions that can help avoid cloning short of costly litigation:
  1. Include more protections in your Nondisclosure Agreement (NDA). Before sharing source code, demos, or ideas with potential partners, consider executing an NDA that specifically prohibits cloning or the use of any derivation of the IP shown to the other party. The NDA should include a presumption regarding the developer’s remedies in the event the game is ultimately cloned, and most importantly, copying should be defined more broadly than copyright protection allows. Because you will be negotiating a contractual right, you are not limited to the strictures of intellectual property law. While you may find this somewhat time consuming on the front end, it could avoid disputes later.
  2. Scramble the code. Oftentimes cloners simply reverse engineer a popular game in order to copy it. One way to avoid this is to obfuscate the source and machine code of your game so that it cannot be reverse engineered. Amazon has promoted this idea in its Appstore.
  3. If you do get cloned, launch a media offensive. One way to challenge a clone is not in the courtroom, but on the web. If your game is cloned, consider launching a media offensive on the blogosphere to draw attention to the cloned game. The backlash for the cloner could be significant and may deter other would-be cloners from following suit if they know you will bring attention to the copying.
This post was written by Benedict Y. Hur and Michelle Ybarra of the law firm Keker & Van Nest. As an intellectual property and complex commercial litigator with a deep understanding of the gaming and mobile application industries, Ben Hur helps those companies and developers protect their greatest assets - innovative ideas, products, and relationships. Michelle Ybarra has represented clients in commercial litigation and arbitration matters, including intellectual property, antitrust, securities, and appellate disputes.

Assembling an iOS development environment



Takeaway: Justin James shares details about the first step in his process to learn iOS development: what he purchased to set up his environment.
Welcome to my inaugural post about iOS development. The topic may seem like a bit of a shock to readers, considering my focus on WP7 in TechRepublic’s App Builder blog and .NET-related technologies in the Software Engineer blog. The truth of the matter is iOS development in the last couple of years has shifted from a niche skill to a “must know” for a lot of people. I have left a lot of work on the table because I lacked iOS experience. Here is what I am doing to start my path on iOS development.
The first thing you need is a Mac. I am funding this endeavor 100% out of my own pocket, which means that saving money is important. While Mac’s are more expensive than PCs, there are still a number of good, inexpensive choices. I put my attention on the Mac mini series, which start at a very low price ($599). It was a tough choice. All of them can be upgraded in RAM (do it yourself to a save a fortune). There are two desktop models and a server model. I was stuck choosing between the higher-end desktop model (discrete graphics card) and the server model (quad core CPU and faster hard drives) and opted for the server. Between the iPhone/iPad emulator, compilers, and possibly running VMs down the road, a quad core made the most sense. It comes with 4 GB of RAM and two 500 GB drives; I will likely be upgrading to 8 GB or even 16 GB of RAM in the near future.

Credit: Amazon.com
Add caption


I also ordered a Magic Trackpad to help use the iOS emulator as closely as possible to an actual iPad or iPhone. To start, I will be using an iPad to verify application operation, so I ordered a basic, 16 GB WiFi-only new iPad (aka iPad 3). Down the road I will also get an iPhone for testing. Finally, I ordered a copy of Learning iPad Programming: A Hands-on Guide to Building iPad Apps with iOS 5 by Kirby Turner and Tom Harrington.
Of note, I ordered everything through Amazon. Amazon gets it out the door a bit quicker than Apple with two-day shipping via Prime. In addition, Amazon is able to not charge sales tax while Apple will, which saved significant amounts of money. The tradeoffs are that Amazon has a 15% restocking fee on returns of the Mac if it is not liked/needed/etc. (Apple has a 14 day, 100% money back return policy, regardless of the reason), and that Amazon cannot customize the package like Apple can. If this were not my money, I’d order from Apple instead.
Once I got everything in, I hooked it right up to my DVI KVM. No need for any special adapters, an HDMI-to-DVI adapter comes out of the box. If I want to connect a second screen (which I will, if I decide the Mac replaces my Windows machine for primary use), then I will need a Mini DisplayPort-to-DVI adapter as well (you might not need to, depending on your monitors). The Mac works fine with a standard Windows keyboard layout and mouse. You will want to print out the Mac keyboard shortcut list.
Initial configuration was simple, even considering that it was establishing server settings that a desktop would not need. I added Xcode (the free IDE for Apple development, available in the App Store), Chrome and Firefox (with Chrome as the default browser), Microsoft Office, the Twitter client, Sky Drive (to sync stuff with my Windows PC), Vienna (RSS reader), and MenuTab (Facebook client). The App Store is a great place to find things, but most of the interesting apps cost money, and some cost a lot of money. I was happy that Office was bundled in a Remote Desktop application, which was critical. Getting my printer hooked up was a snap (it even detected it before I looked for it).
Something that needs to be made very clear here: I have used Mac OS in the past (well over 10 years ago), but not OS X. I have been a Windows-only person, other than some command line *Nix work. I am not an “Apple fanboy” and other than buying gifts for my wife, this is the first time I’ve ever given Apple money for anything (I don’t even use iTunes). I have taken issue with many of Apple’s policies in the past, but at the same time, I don’t “hate” Apple or anything like that. All of this being said… other than readjusting to the new keyboard shortcuts, the Mac is very usable. It is fast (of course, my Windows PC is loaded down with a million tons of databases, Web servers, and other development tools). While I intended to use the Mac for development only, there is a very real chance that the Windows PC will be relegated to “development only” instead. The Mac will get a fair evaluation, but that is a topic for another time and another day.
The total cost to get started (including the book) was $1,628.72, not including a few extra bucks I spent on one-day shipping from Amazon or the $99 iOS developer membership (on par with an App Hub membership for WP7 and probably Windows 8 development - not needed until you are ready to deploy to a device or put an app in the App Store). Is that expensive? Compared to a Windows box with equal hardware specs, definitely. But compared to a Windows box plus Visual Studio ($499 for Professional Edition with “MSDN Essentials” or $1,199 for Professional Edition with a true MSDN subscription) it is a pretty even comparison unless you can make do with the Express editions of Visual Studio (any decent developer machine will run roughly $1,000 for a desktop in my experience). And don’t forget, that price includes the iPad!
If you are a Windows developer looking to get your toes wet with iOS development, putting together a development package is not as expensive as you might think. You can save a bundle of money by getting an iPad 2, opting for the slower desktop model, etc. In fact, a base desktop model ($599) and an iPad 2 ($499) is a very acceptable combination, and comes in at the cost of a good Windows PC.
Stay tuned next month as I show you how to get started with your first iOS project!
J.Ja

How to use Android animation listeners

Takeaway: This tutorial shows how to use Android animation listeners when simple time-based callbacks aren’t enough and XML-based animation sets get too hairy.

I enjoy working with Android’s animation framework, as you might have guessed by reading my tips on creating a custom “spinner”, chaining animations, and using the ViewFlipper widget. It’s still a bit loosey-goosey when compared to iOS, but that doesn’t make it any less powerful. Also, animations in Android are a lot of fun!
In this post I demonstrate how I use Android animation listeners when simple time-based callbacks aren’t enough and XML-based animation sets get too hairy. You can follow along with the tutorial, or download and import the project.
1. Open Eclipse and start a new Android project targeted at Android 1.6 or higher. Be sure to rename the startup activity Main.java.
2. I’m using a small PNG image I created in GIMP; I call it heartbeat.png, and it’s just a simple gradient (Figure A). In your /res folder, create a /drawable directory and store the image there.
Figure A

3. Next we need to create a new directory in the /res folder called /anim — this is where we place our actual animations. In this instance, I created four XML animations. They are all transformations, and the idea is to move our heartbeat image left to right on the display, with a “blip” in the middle that simulates a heart monitor display at a hospital bedside. I’m not going to go through the animations line by line. If you need to brush up on Android XML-based animations, Google’s developer guide is the presiding authority; you should refer to the section titled View Animation for a rundown on transformations.
xform_left_to_right_begin.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fromXDelta="5%p"
android:toXDelta="50%p"
android:fromYDelta="50%p"
android:toYDelta="50%p"
android:fillBefore="true"
android:duration="900"
android:fillAfter="true"/>
xform_to_peek.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fromXDelta="50%p"
android:toXDelta="60%p"
android:fromYDelta="50%p"
android:toYDelta="30%p"
android:fillBefore="true"
android:duration="200"
android:fillAfter="true"/>
xform_from_peek.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fromXDelta="60%p"
android:toXDelta="70%p"
android:fromYDelta="30%p"
android:toYDelta="50%p"
android:fillBefore="true"
android:duration="200"
android:fillAfter="true"/>
xform_left_to_right_end.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fromXDelta="70%p"
android:toXDelta="90%p"
android:fromYDelta="50%p"
android:toYDelta="50%p"
android:fillBefore="true"
android:duration="400"
android:fillAfter="true"/>
4. The last resource we need to get in place is our layout. Inside the /res/layout folder, add a main.xml file. The contents are nothing more than a text view and an image view tucked inside of a linear layout.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:padding="25dip"
android:textColor="#ffffff"
android:text="Animation Listener Demo"
android:layout_gravity="center"
android:gravity="center"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/heartbeat"
android:id="@+id/blip"/>
</LinearLayout>
5. We are ready for our /src folder and the Main.java, which sits behind our layout. We want to extend activity and implement animation listener. We will also want a couple of class-level variables.
Main.java
package com.authorwjf.beep;
import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Animation.AnimationListener;
import android.widget.ImageView;
public class Main extends Activity implements AnimationListener {
private int state_machine = 0;
private Animation mAnim = null;
}
6. Next we will need to override both the on create and the activity on stop. If you don’t handle the on stop case, you can expect the app to behave unpredictably when there is an interruption like a phone call.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAnim = AnimationUtils.loadAnimation(this, R.anim.xform_left_to_right_begin);
mAnim.setAnimationListener(this);
ImageView img = (ImageView)findViewById(R.id.blip);
img.clearAnimation();
img.setAnimation(mAnim);
img.startAnimation(mAnim);
}
@Override
protectedvoid onStop() {
super.onStop();
try {
ImageView img = (ImageView)findViewById(R.id.blip);
img.clearAnimation();
mAnim.setAnimationListener(null);
} catch (Exception e) {
//log
}
}
7. The final step is to implement the animation listener callback. In this instance, I’m only interested in loading a new animation when the current one ends. However, we are still required to override both the on start and on repeat functions.
@Override
publicvoid onAnimationEnd(Animation a) {
a.setAnimationListener(null);
switch (state_machine) {
case 0:
a = AnimationUtils.loadAnimation(this, R.anim.xform_to_peek);
state_machine=1;
break;
case 1:
a = AnimationUtils.loadAnimation(this, R.anim.xform_from_peek);
state_machine=2;
break;
case 2:
a = AnimationUtils.loadAnimation(this, R.anim.xform_left_to_right_end);
state_machine=3;
break;
case 3:
a = AnimationUtils.loadAnimation(this, R.anim.xform_left_to_right_begin);
state_machine=0;
break;
}
a.setAnimationListener(this);
ImageView img = (ImageView)findViewById(R.id.blip);
img.clearAnimation();
img.setAnimation(a);
img.startAnimation(a);
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationStart(Animation arg0) {
}
At this point, the app should be ready to compile and run (Figure B). If you have an actual Android device, I recommend trying it on the physical hardware. It runs on the emulator, but the animations tend to be a bit jerky.
Figure B

After you’ve had a chance to run it as is, take a few minutes to go back and play with the timing variables in the /anim folder. You can produce some pretty cool effects. I think you’ll find at the end of the day, Android’s animation listener is one more arrow you can tuck inside your digital quiver.

Kamis, 17 Mei 2012

A newbie’s guide to Android development


Takeaway: William J. Francis covers Android development basics, such as the necessary tools to get started and a typical project hierarchy.

Introduction

Android is a great platform. The development tools are free, all the documentation is online, and you don’t need to purchase a special developer phone or register your hardware as a development device. In fact, thanks to the very slick and functional emulator that comes with the Android SDK, you don’t even have to own an Android-powered device (not that I recommend releasing an app without running it on real hardware).
There are more guides on the Internet for setting up an Android development environment than your average java-script program has semicolons. And not only are there just as many tutorials for writing an Android version of the revered “Hello World!” program, but there is actually a wizard included with the Android Eclipse plug-in that will generate it for you.
Yet despite the wide availability of information and a low-to-no startup cost, I still hear complaints from new developers and experienced developers transitioning to Android from another platform that it’s overwhelming to know where to start. Setting up a development environment and writing a “Hello World” app is vastly different from understanding Android conceptually, and the unique approach required to writing an app that does something useful. I get asked all the time what an Android project looks like, how the layout manager works, and what are the overriding design best practices for implementing Android applications.
My goal with this guide is to answer some of the common questions, and also open a dialogue with TechRepublic readers. I’d like to hear lingering questions of developers new to Android, as well as insights from experienced Android developers. Perhaps collectively we can make the road to creating that first killer app a little smoother.

What is Android?

According to Google’s official documentation, Android is not just an operating system, but rather it is a software stack. Part of that stack is an operating system (a forked Linux kernel to be exact), but Android is also a set of middleware, core applications, and an SDK that ties it all together. Android provides all the required components needed to run the device, a base level of functionality, and a highly optimized virtual machine for running a variant of Java-byte code. It is in this Java-based layer that third-party application developers are given the tools and the necessary ecosystem to extend the functionality and usefulness of Android-powered consumer devices via the wonderful world of apps.

What tools do I need?

Unlike many other development environments, you don’t need to purchase expensive hardware and software to start writing your first Android app. Android development can be done on a Mac, a Windows PC, and just about any flavor of Linux. You need Eclipse, the Android SDK, and the ADT Plugin. All of these tools are free.
If you have an Android-powered tablet, the Allow Usb Debugging setting in the configuration menu will enable you to connect the device to your development environment, download code to it, and invoke the debugger. If you don’t yet have an Android-powered device, you can use the emulator that comes with the SDK.

How do I set up my development environment?

For my money, the installation guide put together by the folks at Google is probably the most comprehensive and actively updated on the net. There you can find documentation for installing everything you need, for whichever host operating system will house your development environment.

What does an Android project look like?

When you create a new Android project using the ADT plugin, a development scaffolding is created for you. This structure helps to keep your layout cleanly separated from your source code, and it makes it easy to support things like internationalization out of the box. Below is a typical Android project hierarchy with a brief explanation of each node.
  • src- : This is the folder where our Java classes reside.
  • gen- : This folder contains folders that get built for us automatically by the toolset. A good example of what you will find in here is the Android-specific file R.java. This file is updated by the system whenever we add a new id to one of our layout resources.
  • Android x.x- : This folder is the reference to the SDK version our app is using. This is something we get to configure when we create the project.
  • assets- : The assets folder provides a repository for raw resources.  For example, if your app plays sound effects, placing the wave files in the asset folder makes those resources available to the application at runtime. You might think it would be a good idea to include your bitmap images in this folder as well, but you will learn in a moment that Android provides a specific set of folders for graphic resources, and using those folders hold certain advantages.
  • bin- :This is where Eclipse will place your compiled binaries.
  • res- :The res folder is very important, but it doesn’t contain any files directly. The res folder contains a series of subfolders.
  • res/drawable: There is a series of drawable folders. The folder names represent the screen density (as an example res/drawable-hdpi contains all your image resources for high-resolution devices). If you size your graphic resources correctly and include them in the right folder, the operating system will pick out the best possible image at runtime, depending on the size and density of the user’s display.
  • res/layout: The layout folder is where you use Android’s XML meta-language to describe how your screens should be displayed. Like the drawable folder, the layout folder can be used to represent multiple resources, in this case portrait and landscape layouts, allowing the operating to choose the most appropriate option at runtime.
  • res/values: The values folder is used largely for string resources. The contents consist of key-value pairs, and the folders can be modified (e.g., values-ENG) to support various language prompts at runtime.
  • AndroidManifest.xml: The manifest file is responsible for providing essential information to the operating system about a particular application. This information includes things like the package name, the minimum SDK needed, screen sizes supported, security permissions required by the app, and versioning to name a few.

Rabu, 09 Mei 2012

Nymgo 1.11 (Android)



Link Download

Nymgo is a VoIP calling service that lets you call anyone in the world at the lowest rates. Our mobile app has: No hidden fees or charges, you see the price of the call before you make it Instant SMS messaging Easy contact list Simple account management Credit display Local and international high quality calls at the lowest prices Now you can always be in contact with your family and friends. Download now!Recent changes:- Features Improvements- Graphical improvements- Bug FixesContent rating: Everyone













BeejiveIM GTalk Google Talk 3.5.3 (Android)







Beejive IM – instant messenger v3.5.3
Requirements: Android 2.1 +
Review: BeejiveIM apk is the On-the-spot message, chat, & IM on INTENT, Yahoo, GTalk, MySpace, Jabber, Facebook, MSN
BeejiveIM apk, talk, & IM on AIM, Yahoo, ICQ, GTalk, MySpace, Jabber, Facebook, MSN (Windows Live Messenger or WLM). BeejiveIM apk is an IM application that allows you to chat / instantaneous message by having all your IM buddies anywhere you go! Chat on OBJECTIVE, Yahoo, ICQ, GTalk, MySpace, Jabber, Facebook, MSN (Windows Live Carrier or WLM).
BeejiveIM apk Ticket Features:
- BeejiveIM apk utilizes your being present facts plan: no per-message costs.
- Reliable and also effective networking: be linked 24/7, and also it’s peaceful on your electric battery.
- Be connected also after you close the application. Obtain alerted easily when you acquire a cutting-edge message by having Push Notifications (OS 2.2 +).
- Works with many different IM networks, a number of accounts each network: INTENTION ® / iChat, MSN ®, Yahoo! ®, GoogleTalk ®, Facebook IM, Jabber, and also MySpace IM.
- Deliver as well as get documents, consisting of images as well as voice notes. View as well as ahead gotten papers.
- Desktop-like on-the-spot messaging with all of your IM pals through a single instinctive ui.
To install Beejive IM – instant messenger v3.5.3  apk click HERE

SMS Tracker 2.40 Beta 2.40 BETA (Android)

Remotely track and monitor all SMS, MMS, text messages, calls, and GPS location.


Gizmoquip SMS Tracker is the most complete remote tracking and monitoring system for Android phones. By installing the SMS Tracker Agent on the target phone, you can remotely read all inbound and outbound SMS Text messages, MMS multimedia messages, photos sent and received, view phone call logs (including name, number, and length of call), web browsing history and view GPS location information on a map. All phone usage information can be remotely viewed on any web browser.





• SMS Tracking – Intercept text messages. Read all inbound and outbound text messages. Details include time and date, phone number, contact name and location of the target phone.

• MMS tracking - Intercept MMS multimedia messages. Read and view all inbound and outbound MMS messages. See what photos are sent to and from the target phone. Details include photo, time and date, phone number, contact name and location of the target phone.

• Browser Tracking – monitor all web browser activity on the target phone. Know which web sites were visited, which pages were viewed and when. Also identifies the location of the phone every time the browser is used.
• GPS Tracking – view GPS location information on the map. Know when where the phone is located at all times.

• Call Logging – Monitor all inbound, outbound and missed calls. Identifies the phone number, contact name, call duration, and location of the phone for every call.
If you want to know where your kids are, just send them a text message. The location of the phone is recorded every time it sends or receives a text message.
To use SMS Tracker, install it on the device you wish to monitor and complete the registration process. Registering the device, ties the device to the email address you supply. After the device is registered, you will receive a confirmation email and are ready to start tracking the target phone.


















Unlike other monitoring solutions, SMS Tracker does not just forward a message to your phone via SMS which can cost you money, it saves the messages on a remote server that only you can access.

• Silently monitor all inbound and outbound SMS messages.
• Gizmoquip is a US Based company
• Does not use SMS forwarding which can incur additional costs.
• Integrates with the contact data base so you know the names and the numbers of people communicating with your child.




Keywords: SMS tracker, SMS tracking, SMS monitoring, SMS spy, SMS logger, SMS logging, Text tracker, Text tracking, Text message monitoring, Text message spy, Text message logger, Text message logging, Phone tracker, Phone tracking, Phone monitoring, Phone spy, Phone logger, Phone logging, Call tracker, Call tracking, Call monitoring, Call spy, Call logger, Call logging, GPS tracker, GPS tracking, GPS monitoring, GPS spy, GPS logger, GPS logging


link Download 

HotmailMX 1.0 (Android)





A lightweight client based hotmail.
  • Receive messages on your phone without delay, by automatically synchronizing e-mail
  • Check your Hotmail folders, including subfolders
  • Send pictures from your phone via Hotmail
  • Allows the use of multiple Hotmail accounts (login and logout(
  • Send, receive and view attachments 








 link
















Price     Free
Version   1.0
Downloads    10-50
Size             154 KB

netTALK App [NEW App] 2.0.4 (Android)



The ALL NEW netTALK Smartphone App! FREE calling over WiFi or 3G/4G to US/Canada, without using cell minutes.

// FREE CALLS THROUGHOUT THE USA & CANADA FROM ANYWHERE IN THE WORLD

With the netTALK App, you can make calls throughout the U.S. and Canada from anywhere without using your cell phone minutes. 


If you have poor cellular coverage at home, make calls over Wi-Fi. 
If you are traveling abroad, avoid roaming charges by calling back home over Wi-Fi for FREE. Remember, there is no charge for calls made to the U.S. or Canada.

// REGISTRATION PROCESS

1. Download this app for FREE 

2. Visit http://m.nettalk.com on the web or device to register 

3. Start the app on your device and enter your Username/Password (case sensitive)








// FEATURES INCLUDE
1. Free calling to the U.S. and Canada

2. Connectivity through Wi-Fi/3G/4G 

3. Turn any Android device into a phone 

4. Import your contacts from your phone 

5. Free 411 Directory Assistance
6. Free Conference bridge - just dial 2663 (conf)

// PLEASE NOTE
1. Must be on Wi-Fi/3G/4G 

2. Must create a netTALK account to use this app
3. You will NOT receive an inbound phone number - outgoing calls only
4. Free calls limited to 30 min talk time per call
5. Limited to 500 free min a month
6. International data roaming charges may apply
7. Operator data charges may apply

8. Dialing 911 on the application will not work


// FROM THE MAKERS OF THE netTALK DUO 
Winner of PCMag.com and Laptop Editors’ Choice awards, the netTALK DUO is a revolutionary VoIP device and digital phone service. The netTALK DUO enables free nationwide calls to any phone in Canada and the U.S. from anywhere in the world, as well as low international rates and a slew of other features. No computer is necessary as the netTALK DUO simply plugs directly into a router or modem or via WiFi with our NEW netTALK DUO WiFi.


The netTALK DUO is available online and at leading retailers, for a suggested retail price of $49.95, and the DUO WiFi at $64.95 which includes an entire first year of phone service and all features, and only $29.95 for each additional year, with no additional fees or long-term contracts.

netTALK offers enhanced calling plans which makes international calls even more affordable. The North American Add-on is only $70 per year for calling throughout the U.S., Canada, Mexico and Puerto Rico. The International Add-on is only $120 per year for calling up to 60+ countries.

Are you interested in purchasing the DUO or DUO WiFi? 
Contact us at 1-800-309-1979 (Mon - Fri 9:00am - 7:00pm EST, Sat 10:00am - 5:00pm EST).


//A FREE, DYNAMIC COMMUNICATION EXPERIENCE
In preparation for a more dynamic and richer smart phone experience, we have instituted a 500 monthly minute limit for all free smart phone app users. Once the limit is reached, you will have to wait until the next month to use the app, when minutes are replenished. Our goal is to continue to build and deliver superior products to help consumers save money. Expect many new enhancements in the year to come.
If you think you will come close to that limit or you are interested in saving even more on your local, long distance, and international calls, netTALK offers a variety of products that can save you hundreds.



// FEEDBACK 
- Please continue to send feedback to smartphone@nettalk.com
Learn more about netTALK at www.netTALK.com

Minggu, 06 Mei 2012

Block unwanted calls on your Android phone with this app

Takeaway: In response to a reader’s question, Jack Wallen recommends a free app he likes for blocking calls on his Android smartphone.

We all get those calls we wish we didn’t, whether they are cold sales calls, SPAM, exes, or any other unwanted voice. It’s easy to see the number and then manually deny the number, but it would be nice to have an application to handle that task automatically.

Reader Rijus asked me to how to block a call programatically in Android 2.3 (Gingerbread). Read my answer below, and then post in the comments how you block unwanted calls on Android devices.
I would quote the saying, but Apple might sue. The application I’ve used and had great success with is Call Blocker from NQ Mobile. This free application allows you to block with blacklists, allow with whitelists, block SPAM SMS, create private contacts, clear calling history, and much more. You can even block unknown calls or calls with withheld IDs.

Call Blocker will also run on phones with Eclair, Froyo, and Honeycomb. There is a premium version of the app.

Call Blocker, free version

Jumat, 27 April 2012

Drag-and-drop mobile app builders for SMBs


Takeaway: Ken Hardin spotlights several companies that offer cloud-based, drag-and-drop mobile app building tools, including Apps Builder and Applicasa.
There was a time when if a business wanted to create and publish even the most simplistic website, it had to call on those weird guys called developers who understood arcane languages called HTML and JavaScript. But then came Dreamweaver, Blogspot, and WordPress, and ultimately cloud-based website construction and hosting services that enable pretty much anybody to drag-and-drop their way to a credible Web presence.
And wouldn’t you know it, it’s happening again — this time with mobile apps.
CNET’s Roger Cheng offers an extensive overview of a new wave of cloud-based DIY mobile app services, complete with case studies of small businesses and even a church that were able to create scheduling and publishing apps in just a few hours.
Firms like Didmo with its Magmito service, Apps BuilderConduit Mobile (which was already in the cloud site builder market), and Tiggzi offer the complete suite of app tools, from management to DB layout to Content Management for the publishing layer. These services are the next step in a progression started by cloud backend services such as Applicasa (you can get a nice overview of this service from Jack Wallen on TechRepublic).
HTML5 is often used for Web-top iPhone apps, with export to Android and other platforms as an option. The services rely on jQuery or other drag-and-drop technologies for data mapping and UI creation. Most have a template library, such as the Magmito gallery you see in Figure A.
Figure A
Magmito templates
Rates vary, but these services are clearly targeted for small business. Apps Builder, for example, starts at $19 for the most basic service per app, with a $49 option for network advertising support. Volume pricing is available for resellers who want to churn out applications using the toolset, and the services can shepherd an app through the app market approval process — for a fee.
A Didmo exec tells CNET that carriers are interested in distributing that company’s app-building platform as part of a service level targeted for small business.
So there’s another case where a mouse looks to replace coding. Of course, WordPress has not killed off developers — far from it, in fact; it’s just added a new resume line for savvy coders and made it a little tougher to differentiate your work.
How do you think the emergence of cloud-based, drag-and-drop mobile app builders impact the market for truly innovative app designers?
Note: CNET and TechRepublic are CBS Interactive brands.

A quick tutorial on coding Android’s accelerometer


Takeaway: The accelerometer is a hardware sensor used to detect a shake motion. William Francis shares the accelerometer code that he uses in his Android apps.

Hardware, software, and the user are melding in ways previously thought to be the stuff of science fiction. Hardware like touch screens, gyroscopes, and accelerometers is enabling software to detect physical user nuances. No longer is a keypad the only choice for interacting with your phone. At times simple gestures and motions can and do provide a more natural and immersive user experience.
One of the trends I’ve noticed is the use of a “shake” motion in a number of Android applications. Just what is a “shake” motion? Well if you’ve ever used an Etch-a-sketch, it’s the same principle employed for erasing your work of art. Shaking your phone is a superb shortcut for things like a universal home feature, reset to defaults, random selection, and an erase or clear function.
Often the issue for developers when it comes to writing applications that take advantage of hardware sensors like the accelerometer (which is what is used to detect a shake motion) is that the coding can be hairy. An accelerometer is defined as an instrument for measuring the time rate of change of velocity with respect to magnitude or direction.  If this sounds like physics, it’s because it is.  I know there are fans of the physical sciences, but I’m not one of them.
You can find a number of algorithms on the web for detecting a horizontal and/or vertical shaking motion of an Android-powered device.  Most of the algorithms work, but they tend to be complicated. This short tutorial is the accelerometer code I use in my Android applications.  I know some will argue that my implementation (which is a culmination of various resources I’ve found on the subject) isn’t as accurate or technically astute as some of the other algorithms available, and you’ll get no arguments from me.  But if you’re looking for something easily digestible that gets the job done, look no further.
1. Create a new Android project in Eclipse targeted at Android version 1.6 or greater.
2. In order to give a quick visual indicator as to whether the phone is being shaken (not stirred!) in a horizontal (Figure A) or vertical (Figure B) fashion, I’ve added two images (horizontal.png and vertical.png ) to my /res/drawable folder.
Figure A
Figure B
3. In your /res/layout folder, add a main.xml.  The layout is on the long side, but if you look closely, you’ll see it’s nothing special.  It consists of a table with three columns and two rows, plus an image view.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:paddingTop="20dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textStyle="bold"
android:gravity="center"
android:text="Shaker Demo"/>
<TableLayout
android:paddingTop="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="*">
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="X-Axis"
android:gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize=“14sp”
android:text=“Y-Axis”
android:gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="Z-Axis"
android:gravity="center"/>
</TableRow>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/x_axis"
android:gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/y_axis"
android:gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/z_axis"
android:gravity="center"/>
</TableRow>
</TableLayout>
<ImageView
android:paddingTop="10dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image"
android:layout_gravity="center"
android:visibility="invisible"/>
</LinearLayout>
4. In our /src folder, you will want to create a Main.java file that extends Activity and implements the SensorEventListener.  You also will need a handful of class scoped variables.  In the onCreate method, you should initialize our variables, procure an instance of the accelerometer, and register the sensor event listener.
Main.java
package com.authorwjf;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class Main extends Activity implements SensorEventListener {
private float mLastX, mLastY, mLastZ;
private boolean mInitialized;
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private final float NOISE = (float) 2.0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mInitialized = false;
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
}
5. Before implementing the sensor event handler (where the real meat of this app is found), you need to override some activity lifecycle management methods in the Main.java class.
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// can be safely ignored for this demo
}
Note: Many developers who publish online Android tutorials often overlook these methods when writing examples. The methods tend to muddy up the tutorial and aren’t that different from one implementation to the next. We assume that developers are familiar with activity life cycle management, and when/if readers publish an app they will do the right thing. If you aren’t familiar with Android’s activity lifecycle, reading up on it is a must. I’m explicitly including these methods in this tutorial because now we are using the accelerometer, a hardware sensor that can run down the phone battery in no time if it’s not managed correctly by an application.
6. Add your onSensorChanged handler to Main.java.  The accelerometer reports three values: an X-axis, a Y-axis, and a Z-axis.  Our function will get the delta for each axis between one function call, and the next (with a special case to handle the first time the method gets called since it takes at least two calls to the method to be able to get a delta).  Those deltas are then compared first against our NOISE constant (which you adjust to make the algorithm more or less sensitive), and then against each other to determine if the motion is in a horizontal or vertical direction.
@Override
public void onSensorChanged(SensorEvent event) {
TextView tvX= (TextView)findViewById(R.id.x_axis);
TextView tvY= (TextView)findViewById(R.id.y_axis);
TextView tvZ= (TextView)findViewById(R.id.z_axis);
ImageView iv = (ImageView)findViewById(R.id.image);
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
if (!mInitialized) {
mLastX = x;
mLastY = y;
mLastZ = z;
tvX.setText("0.0");
tvY.setText("0.0");
tvZ.setText("0.0");
mInitialized = true;
} else {
float deltaX = Math.abs(mLastX - x);
float deltaY = Math.abs(mLastY - y);
float deltaZ = Math.abs(mLastZ - z);
if (deltaX < NOISE) deltaX = (float)0.0;
if (deltaY < NOISE) deltaY = (float)0.0;
if (deltaZ < NOISE) deltaZ = (float)0.0;
mLastX = x;
mLastY = y;
mLastZ = z;
tvX.setText(Float.toString(deltaX));
tvY.setText(Float.toString(deltaY));
tvZ.setText(Float.toString(deltaZ));
iv.setVisibility(View.VISIBLE);
if (deltaX > deltaY) {
iv.setImageResource(R.drawable.horizontal);
} else if (deltaY > deltaX) {
iv.setImageResource(R.drawable.vertical);
} else {
iv.setVisibility(View.INVISIBLE);
}
}
}
If you want to see for yourself, you’ll need to load the app to an actual device and give it a good shake (Figure C).  Unfortunately, when dealing with the accelerometer, there isn’t a lot of shaking that can be done on the emulator. For those who would rather just import this tutorial into Eclipse directly, TechRepublic has made the source code available for download.
Figure C
Shaker app in action
 
Translate INdonesia