Showing posts with label developer. Show all posts
Showing posts with label developer. Show all posts

2014-12-06

Level Up - Android Dev: The default emulator is horrendously slow, use Genymotion!

Many years back when I built and published my first Android apps, I only tested them on the default emulator provided by Google. And, even now, the default emulator is still too slow for my liking. It doesn't allow me to properly test apps. So, I purchased physical devices so that I would never have to touch the Android emulator again.

Genymotion provides a different take on the Android emulator. I've known about it for at least a year, but never got around to trying it because of my really bad experience with the default emulator. I've always heard that it was much faster than Google's implementation, but I didn't think an Android emulator could ever be fast enough for me compared to my physical devices.

I'm always learning something new, and today was finally time for me to learn more about Genymotion and test just how much better it is.

Results: Excellent! So much of a great experience that I had to write this blog post about it! I should have tried Genymotion when I first heard about it, and this is my message to all Android devs to also try it out now!

Sidenote: I was going to compare the default emulator with the Genymotion emulator side-by-side, but it was taking too long to load for me, whereas Genymotion startup was a breeze of fresh air. It runs without any lag. It runs faster than my old API 17 device.

Another great benefit is that Genymotion provides system images for many of the most popular devices, including Samsung Galaxy, Samsung Note, HTC One, Nexus, and more. And, they have a very convenient plugin for Android Studio to launch the emulator.

TLDR: It's fast. I have to make sure I stress that because I didn't believe how fast it would be. Genymotion's Android emulator is much faster and better experience than the default Android emulator.



Here, I even saved enough time to write a quick walkthrough for getting started. ;)


  1. Go to Genymotion.com, click "Get Genymotion".
  2. Download the free version, you'll have to sign up and confirm your email. (It's quick and it's worth it!)
  3. Install it along with VirtualBox. For Windows users, they can bundle the two together in the download. For other, you'll have to install VirtualBox separately.
  4. If you try to run it now, you might get an error that says "genymotion virtualization engine not found. Unable to load VirtualBox engine". So, just restart your computer and that fixed it for me. Some others had to enable the virtualization feature in the BIOS.
  5. Run! Fast!
  6. Now, you can click run in Android Studio and you will see an option to load the app in the Genymotion emulator that is running.

Bonus: How to Install the Genymotion Plugin for Android Studio (and, the first time you click on the installed plugin button, you'll have to add the path to where you installed it. Windows default is "C:\Program Files\Genymobile\Genymotion". Mac default is "/Applications/Genymotion.app")
~ Danial Goodwin ~



2014-06-16

Level Up - Android Dev: Useful and Productive Android Methods

Great Android tidbits that developers should know to be more productive. Included are simple useful classes and methods that may not be well known.

http://blog.danlew.net/2014/03/30/android-tips-round-up-part-1/

~ Danial Goodwin ~



2014-02-01

Level Up - WP Dev: How to Remove Debug Information From Windows Phone Emulator

(This post is for developers of the Windows Phone platform.)

Ever find the frame rate counters and other debug information on the Windows Phone emulator more annoying than useful? It always appears there, whether in debug mode or release mode.

What if you want to get a clean screenshot without having to edit the image later? The red and white performance information on the side of the emulator screen is a nice feature, but I haven't needed to use it much in my recent apps.

It's possible. And, you only have to change one word.

How To:
1. Open App.xaml.cs.
2. Find the line that says `Application.Current.Host.Settings.EnableFrameRateCounter = true;`.
3. Change `true` to `false`.

That's it!

Now, you can get the full/real experience that end users would get when using your app, emulator style.

Feel free to share this with other WP devs that you know.

By default, the emulator has debug information on it.


Source: http://msdn.microsoft.com/en-us/library/windowsphone/develop/gg588380(v=vs.105).aspx


~ Danial Goodwin ~



2013-12-13

Bug Fix: Windows Phone Not Detected, Can't Connect To Windows Phone Developer Registration

The Problem:
"Status: Unable to connect to a phone. For Windows Phone 7 phones make sure the Zune software is running and the Zune recognizes your phone. For Windows Phone 8 phones make sure that the Windows Phone IP Over USB Transport (IpOverUsbSvc) service is running."

The Solution:
- What worked for me was just using a regular USB cable and plugging it in directly to the computer rather than going through an USB hub.

- For many other, what works is ensuring that "Windows Phone IP Over USB Transport" (IpOverUsbSvc) is running. How to do that? Here's an easiest way: Go into start, search "Administrative Tools" -> Click "Services", then find and double-click on "Windows Phone IP Over USB Transport", and find the start or maybe even the reset button.

~ Danial Goodwin ~



2013-11-22

Android 4.4 Developer

A few days ago, I had my Nexus 4's OS updated from Android 4.3 to Android 4.4. The system is running very smooth. Two of the first things I did was enable developer mode and then enabled all apps to use the new ART compiler rather than the old Dalvik compiler.

You are now a developer! Again! 


~ Danial Goodwin ~



2013-11-21

Android Publishers Cannot Purchase Their Own Apps

This is not new news by a longshot. But, through the regular course of my day, I encountered this error again and decided to take a picture so that I can let others know about it too.

In order for developers to have the pro versions of their apps, they must side-load it. And, it is typically a debug (non-public release) build.

The publisher cannot purchase this item.

Well, I guess it at least saved me 30% of the app cost if I wanted to buy from myself.

NOTE: This only applies to when using Google's in-app billing system. I don't think third-parties care as much about who is giving them money.

~ Danial Goodwin ~



2013-11-08

Working Title, "Basically, Android Expained"

I am an Android developer. I have been one for a few years now. In that time, I've had the pleasure of helping many people with technical questions. I believe one of my specialties is being able to explain complicated concepts in simple, laymans terms.

Over the years, I was bound to give repeat answers eventually. So, in order to keep myself more efficient, I will start adding all of my layman explanations to a wiki, which I will eventually probably turn into some sort of ebook.

The book will be titled, "Basically, Android Explained". I still have a few working ideas for a tagline.

I chose to title the book this way because almost all my explanations start off with "Basically, ...". This single word is very important to my explanations because it signifies that what follows is NOT everything explained. It is just the easiest explanation for a non-developer or a new developer.

I'm not sure of the entire structure that I want to use for my definitions, but one way is to have the first sentence be "Basically, ...", then the following sentence would be a more technical definition, then after that will be the reasons for using it.

For good measure, here's an except:
KeyStore: (also referred to as a Java keystore or keystore file) A security certificate used for authorization. Basically, an app's signature. It proves that the app was made by a certain developer. This is a precautionary security measure that prevents malicious apps from replacing another app."

That was just a quick rough draft, I have a few more ways to explain this concept. Feedback always welcomed.

~ Danial Goodwin ~

Title: Basically, Android Explained
Description: Where advanced technical concepts are abbreviated to quick/light readings.



2013-05-18

Cross-Platform Tools For Mobile App Development

This summer I'll be experimenting with different cross-platform tools in order to be more efficient with my time. The development tools that I'm mainly looking at will create native code code for each platform that the app runs on. The biggest reason for this is performance and having a native UI that users are used to with their platform.

So, the collection that follows are my notes I took when researching many of different cross-platform tools.

In doing background research for the cross-platform tools, they are great for basic app creation. But, app can quickly become non-basic as soon as they start accessing native APIs that are only available for a specific platform. Some of the biggest pain points with the cross-platform tools may be integrating other open-source codes, using multi-touch, gestures, and native UI features/paradigms. But, there are cross-platform mobile development tools that help with those features.

A big note on using cross-platform tools to create native apps: It is not "write once, run anywhere" (WORA). The idea of creating these native apps is to maximize code reuse and/or provide a higher abstraction level for development. Up to 50-95% of the code you write can be reused depending on the type of app you are creating.

My Results:
These final choices I made are bias because I didn't want to spend over $1000 for Unity3D. I don't even want to spend $200 for MonoDroid/MonoTouch, but I will if I don't care for the free options as follows. I chose these options mainly because of their documentation, sample APIs, developer communities, and active development. Both of the following are free up to a certain point, but because I am in academia I get to go a little further with the tools.
1. MoSync
2. Titanium by Appcelerator

The following I'm not trying the following until at mid- to late- summer likely (because of cost, it can wait longer...)
1. MonoDroid/MonoTouch: ($99 academic rate per developer, per platform) The regular Mono library is free, but it is just an open source implementation of the .NET framework. It does not include tools for integrating with iOS or Android. Both of these tools integrate Mono into them.

More Specific Notes: (I take a lot of notes directly in Notepad++/Notepad)
/* Cross-platform SDK */

- Mono (native app, C#) (open source): This is just an open source version of the .NET framework to be used anywhere, like in Apple and Linux OS. http://www.mono-project.com
  - Mono for Android (proprietary): Free version only allows small apps and no access to 3rd-party libraries. Lowest paid version is $199 per platform/developer. Academic cost is $99 per platform, per developer (http://support.xamarin.com/customer/portal/articles/177042-do-you-have-any-student-or-academic-pricing-)
  - MonoTouch (for iOS) (proprietary): 
Conclusion: Good if already have much code in C#, or prefer the .NET framework.
- Unity3D - high costs
- Marmalade (native app, C++) ($15 per seat/month;$149 per seat/year): http://www.madewithmarmalade.com/
- Rhodes (HTML/Ruby): Says native app, but seems to be web app with just a native UI. http://www.motorolasolutions.com/US-EN/RhoMobile+Suite/Rhodes
- MoSync (native app, HTML/JS w/optional C/C++ extensions) (open source | Free): Seems promising. Needs Mac for iOS publishing.
- Titanium by Appcelerator (native app, JS) (Free): Uses JavaScript mainly, but it is not a web app. It is translated to native code (but, a web UI ‘could’ be made instead of a native UI). Android, iOS, and web only.
- PhoneGap (web app, HTML/JS): Very limited, though has basic access to camera, contacts, some sensors.

Conclusion: For free, use possibly MoSync or Titanium. For paid, use Xamarin’s MonoTouch/MonoDroid ($99 per developer, per platform)

Wikipedia also has a very long list of potential cross-platform tools to choose from. It may be helpful if you are trying to do more background research into the many different types of development tools that provide non-native code when compiling for different platforms.

Source: I originally put this on my developer blog.

~ Simply Advanced ~



Google Play Developer Console: How To Upload Required Graphics (Icons and Screenshots)

I've been asked many times, "what size logos do I need to upload to Google Play's Developer Console?" and "how many screenshots do I need to take?" So, here's a post that I point people to that explains everything you need to know about uploading graphics to the developer console in order to have an app published.

A very important point to remember: These images that are uploaded are one of the main factors potential users use to determine if they want to download it or not. They may not even read the description if you have an ugly app logo. Invest wisely in a great logo (either time or money). Google Play also allows each app to have one YouTube video associated with it and appear in the description. This is a highly effective way of showing that your potential users want to use your app.

The first part of this post will give a walkthrough on how to upload the required graphics to the developer console and the second part will have more resources for designers.

1. Walkthrough
  1. Go to https://play.google.com/apps/publish/ and select the app that you want to add the graphic assets to. You may either have to click "All Applications" in the top left or "Publish an Android App on Google Play" if this is the first app you are creating (create a title and click "prepare store listing").
  2. You should now be in the "Store Listing" section for your app of choice. Scroll down until you see "Graphic Assets." The screenshots section should be the first graphic assets to add.
  3. Now, you can either drag the screenshots onto the "Add Screenshot" box or click the box and browse to where the image is located. A minimum of two screenshots are required before the app can be uploaded to Google Play.
  4. Scroll down a little more until you see "High-res icon". This is the final required graphic asset that must be added before publishing. It should be 512x512px. See 4. Summary below to see more details.

2. Resources - Things change, so here's a link to the official Google Play Design Guide that all developers, designers, and Android app publishers should read.
  • Android Icon Design Guidelines. Here's some tips for designers to work more easily with developers. Designers, please follow these guidelines when creating assets for Android. It will just make things so much easier for developers. The biggest thing is to not have any spaces or capital letters in the file name.
  • All About Launcher Icons. Launcher icons are the icons that users see when they install the app; It is what they must click on to open the app. You don't want your icon to be so bland that the user can't easily distinguish it from the many other apps they have already downloaded.


3. Bonus: Google Play Protips
  • Google Play allows you to create localized versions of your graphics. Think about translating any descriptions and titles on your graphics to the other languages you support.
  • And always, do market research (or due diligence) to make sure that you aren't trying to upload the same style icon/logo as another app. Your app will seem like the spammy one. You want to have a distinguished style to set yourself apart from others (but not too different). Check out the Android Iconography

4. Summary: Graphic and Image Assets
  • Screenshots (Two Required)
    • Allowed up to 8 screenshots for each different device (phone, 7" tablet, 10" tablet)
  • High Resolution Icon (Required)
    • 512x512, 32-bit PNG w/alpha. This is the icon that is shown to users in Google Play
  • Feature Graphic (Optional, but recommended)
    • 1024x500, 24-bit PNG no alpha
  • Video (Optional link to a YouTube video, recommended)
  • For more information: https://support.google.com/googleplay/android-developer/answer/1078870?hl=en
Source: http://blog.simplyadvanced.net/google-play-developer-console-how-to-upload-required-graphics-logos-and-screenshots/

~ Simply Advanced ~



How To Get Started With Publishing Apps On Google Play

First of all, if you have never created a Google Play publisher account, then see: http://developer.android.com/distribute/googleplay/publish/register.html

That link above will walk you through the steps necessary to be able to upload apps on Google Play and start making money from them.

When creating a new account you will have to go through a few easy steps and pay $25 to setup the account. Then you should appear at a screen that looks like the following:
Google Play Developer Console Home Screen
The options are self-explanatory. But, the first thing that you would probably want to do is set up a merchant account in the bottom-right. This is how you will be able to accept in-app purchases and create paid apps. The second step for you probably (if you aren't a developer) is to invite co-workers to the developer console in the bottom-left. This will allow you to invite by email your developer to upload the Android APK (app packages that users download and install on their device). You can also invite your graphics designer so that they may upload all of the required logos and screenshots. And either yourself or a copywriter can fill in the app description and promo description.

I will eventually create more posts that explain exactly how to perform each of the roles for the developer, designer, and copywriter. I know how to do each of these because of the many Android apps that I've successfully published. If you are also doing each aspect of the app publishing, then I highly recommend reading http://developer.android.com/design. There is a lot of highly useful information there. But, don't limit yourself to just that one great resource. It takes a lot of knowledge to have a highly successful app.

Source: http://blog.simplyadvanced.net/how-to-get-started-with-publishing-apps-on-google-play/

~ Simply Advanced ~