Saturday, February 22, 2014

Version 1.6 of Ham Finder

It's been a while since I've done an update on Ham Finder here, let me give you some basic. First of all, the app is doing great, thanks to all of you who have already downloaded it! There have been over 1000 downloads, which makes this competing for my most popular app of all time, and already I can tell you there's more actual users of Ham Finder than any other app I've developed. You guys rock!

Some features that have been released, in versions 1.3 to 1.5, include some call sign help, frequency monitoring, improved logbook, tablet versions, and in general I'm working towards ADIF exporting.

Version 1.6 will include the following:

1. Users can now specify their location, useful for those devices without a GPS.
2. Working on putting things on the map to indicate where you have been.
3. Improvements in how frequency is managed.

The next big version, I am excited to announce, will contain ADIF support! I should be able to export the log to ADIF format, and I'll work on other fun stuff as well!

Bottom line, the app's coming great, and I owe it all to my awesome audience! Thanks, and keep letting me know what you want!

Friday, February 21, 2014

The 10 Commandments of Android Development

In developing Android, I've found a bunch of common mistakes that people often make. I've made more than one of these myself. While I can, and probably will talk about how to avoid each of these at some point in time, I wanted to at least point out some of the common pitfalls that people often encounter when beginning Android development.


 The 10 Commandments of Android Development


1. Thou Shalt Have no other SDK Version Targeted, except for the latest released!

2. Thou Shalt Not make unto thee any Network Connection on the Main Thread!

3. Thou Shalt Not make unto thee any Toast without .show()ing it to the world!

4. Thou Thou shalt remember thy variables, to recycle them. Neither thy Bitmaps, nor thy TypedArrays, nor thy Parcels, nor even a reference to thy MotionEvents outside of thine functions shall escape without being .recycle()d!

5. Thou Shalt never create an anonymous inner OnSharedPreferenceChangeListener class, so that thy OnSharedPreferenceChangeListener's days may be long, and not be Garbage Collected. 

6. Thou Shalt Not have any local variables inside a onDraw statement!

7. Thou shalt Not programmatically define a View, but instead shall define it via XML code!

8. Thou Shalt Not ignore the convertView of an ArrayAdapter, but shall always use it to reduce thy memory footprint!

9. Thou Shalt not forget to add <use-preferences> when thou addest new features requiring new permissions.

10. Thou Shalt Not use absolute positions, nor use Scaled Pixels incorrectly, but rather use Density Independent Pixels for thy Views, and Scaled Pixels for thy fonts!.