Tag Archive for Android

Google Kotlin!

Google announced that the Kotlin programming language will now be a first class citizen alongside of Java for Android development. Since Apple had announced Swift as the replacement for Objective-C as the iOS app development programming language, there’s been a lot of speculation on what Google might do in response; some commentators even speculated that Google might also go with Swift. Google has now made their move and it’s a really smart one. Coder Radio listeners will know that I’ve been a long-time fan of Java, but I have to say if there’s going to be a successor to it, then Kotlin seems like a great choice.

For starters, it targets the JVM. That means that Kotlin code can be run on a wide variety of architectures and devices. For the purposes of Android development this was essential, since Android uses a “version” of the JVM; there’s been some legal cloud about what exactly Google’s Davlik VM was a bit too much like the JVM for Oracle. If you’ve never had a “standard” disappear on you, then you might not understand how much of risk there is in technologies simply evaporating into the air, leaving you and your users high and dry.

Speaking of the longevity of technologies (especially in the enterprise), Kotlin targets Java 6. What that means is the there’s a huge pool of enterprise Java applications that it can work on today using its interoperability with Java. In practical terms, this means that there’s no need to rewrite your legacy Java application to start writing modules in Kotlin.

Java can be a little strict in terms of checked exceptions. Basically, in Java, if there’s a possibility to throw an exception it must be checked with a try / catch block. In larger projects this makes you’re code pretty verbose and I’ve long found this to be one most annoying aspects of Java day to day. Kotlin does not have checked exceptions, giving you more flexibility in how you write your code and reducing all around cruft.

If you’re an Android developer or just a Java developer in general, I urge you to take a look at Kotlin and form your own opinion. Also, if you’re interested in learning more about Docker or DevOps in general, take a look at my Docker Compose Quickstart Guide and follow me on Twitter!

Swift on Android

SwiftRumor has it that Google may be considering making Apple’s Swift a first class language for Android development. Predictably, the internet has been pretty excited about this possibility. My lack of enthusiasm for Swift has been fairly well document, so I’m going to keep my comments to a minimum.  Swift on Android shares the same API problem as Swift on iOS and this likely has more to do with legal wrangling than technology.

Java and Objective-C are very object oriented languages and the Android SDK and Cocoa Touch APIs reflect that. Swift is a far more functional language than either of them. “Good Swift”, which I have been told is functional and not just “Objective-C in Swift” doesn’t really go so well with a OO designed API on Apple’s platform. Why should that problem not exist on Android as well? Maybe Google and Apple will rewrite their SDKs to be more functional, but that’s not where they are right now.

Oracle is suing Google and has been suing Google for Android’s use of the Java programming language, which Oracle acquired in its acquisition of Sun. The lawsuit is ridiculous and a destructive waste of resources, but that’s a pretty fair description of the US legal system, so it is likely to continue to be an ongoing concern for Google. If Google were to stop using Java on Android, that might put them in a better position regarding the suit and it’s pretty clear that the licensing on Swift would prevent any similar issue from cropping up between Apple and Google.

Yes, I’m admittedly bias, but it’s important to think about the practical and ulterior motives that Google might have for adopting Swift and not just blindly jump aboard the hype train. Swift is a decent programming language, but it’s not the right solution to every problem and we should only make changes when it makes sense to do so. Let me know what you think on Twitter or Google+.

Xamarin Review

http://xamarin.comRecently, we at Fingertip Tech, INC have been doing a lot of work in Xamarin and Xamarin.Forms. All in all, things have been going fairly well and the tooling seems to get better everyday! Still, nothing is perfect and at the end of the day working with the Xamarin toolchain is a decsion that has to made on a per project basis and will greatly depend on the overall budget for the project and its maintenance. We are still evaluating Xamarin.Forms but the following are my findings and observations of working with Xamarin classic.

The Good: C# is an absolutely amazing language and every .Net developer ought to apologize to every Java for not spreading the word on just how phenominal the langauge really is. I know that will be a controlversial statment and the Java VS C# debate is a post for another day, but if you haven’t ever done any work in a modern version of C#, then I urge you to give it a shot and try to have an open mind.

Xamarin Studio is a pretty good IDE on Mac OS X and XCode developers will be familar with the IDE’s layout and overall setup – additionally, if you have ever used a modern version of MonoDevelop, you’ll be in pretty good shape. Additionally, the setup process on Mac OS X was pretty straightforward and I was impressed the Xamarin was able to tie into my iOS development tool-chain, pulling up my simulators and my code-signing credentials. On the iOS side, Xamarin does a great job of supporting storyboard and nib files for user-interface design and is no too shabby on the Android side also; however, Android UIs are still best done in the XML layout files directly.

Despite being in C# rather than Objective-C or Java, Xamarin is a faithful port of just about all of the native iOS and Android APIs. In fact, if you know how to do something with say UITableView in Objective-C, then you pretty much are good to go in Xamarin.

The Bad: Working in Xamarin Studio is great! Well, that’s as long as you are working on Mac OS X. The Windows version of Xamarin Studio is nowhere near as polished or as reliable as its Mac sister. For example, on my Windows 8.1 machine, there is an issue in Xamarin Studio that incorrectly highlights correct code as erroneous. Additionally, the intellisense and related features just aren’t as reliable on Windows. AlthoughIt is likely that a good number of developers using Xamarin on Windows would prefer to work in Visual Studio, there is little excuse for the way Xamarin Studio runs on that platform and frankly it makes it seem like Windows users who have not paid for access to the Visual Studio integration are not as much of a priority as those using Visual Studio or Mac.

The Ugly: Once upon a time, developers the world over were used to paying for by the seat licences for software development tools and even progreamming languages. Xamarin is trying pretty hard to bring that back but I’m not sure it works. Something about the per seat pricing model rubs me the wrong way. Additionally, up until just the other week, no form of mothly subscription billing was available and even to date there is no monthly pricing for anything beyond the ‘Indie’ plan. As the owner of a small but still bigger than five person software development company, I find their drawing the line between ‘Indie’ and ‘Business’ at the seemingly arbitrary number of five just a bit too well… arbitrary for my tastes. Additionally, there are plenty of companies like mine that would probably prefer to not be billed seperately for iOS and Android. All of this creates a sort of complexity that just doesn’t jive with what is otherwise a clean and very customer friendly offering.

Overall, I am pretty happy with how well Xamarin is working out for us and plant to continue working in it. Follow me on Twitter or Google+. Interested in getting your app project off the ground? Then, contact Fingertip Tech, INC and forget to follow us on Twitter!

Time to Go Mobile

If you read my 2014 Predictions, then you know that I don’t believe that we are going to see a lot of huge leaps in mobile hardware or OS technology in the next year. Software from third party developers however will be a different story. Indeed, it is my belief that 2014 is the year that large numbers of normal users are going to begin using their mobile devices as the power personal computers they really are – in many ways, a mobile device is a far more personal computer than an actual PC at this point.

I’m going to be one of these brave few and will therefore start featuring and reviewing applications that I use on a variety of devices. However, I am not going to artificially promise to review an app per week. Nor am I going to worry about making sure all platforms get the same amount of coverage. My goal is to honestly review and recommend apps that I use regularly on whatever platform.

Since these are apps that I actually use, there will be no negative reviews – in fact, there’ll be no scoring at all, as I find the star or X out ten scoring systems to be arbitrary at best. Think of these apps as my picks and treat them that way. If you like what I like and you find something that you start to use often from these posts, then please let me know on Twitter or Google+.

Review: Dell Venue 7

tablet-venue-7-mag-965-mixed-set-video-comOver the last few weeks, I’ve had the opportunity to try out the Dell Venue 7 and use it as a test device but also a day to day media tablet.

The Good: The tablet ships with a fairly recent version of Android: 4.2.2. Additionally, the UX is pretty much stock Android — in fact, I’m at a strain to find anywhere that Dell has significantly modified the OS. At $150, it is nothing if not affordable. This low price point is made all the more impressive by the beautiful screen that holds up fairly well to its higher-end competitors.

The Bad: Unlike most popular Android tablets, the Venue is based on an Intel chipset. Taken by itself, that’s not necessarily a bad thing, but there is a trend of developers (especially mobile game developers) tweaking their software to optimize for Tegra and SnapDragon processors — or more broadly put, developers of high-end Android software, have been optimizing for ARM systems. In fact, on a few higher end games, I’ve seen a bit of sputtering on the Venue that I don’t see on the Nexus 7.

The Ugly: Dell’s decision to go with Intel also seems to have affected the industrial design of the tablet. It is noticeably thicker than the Nexus 7 and feels like it is a year or two behind the likes of the Nexus and Nokia’s Sirius tablet in terms of its industrial design aesthetic.

Conclusion: Dell’s’ Venue 7 is not a bad tablet by any means and will probably excel in certain arenas where price matters more than performance: ie corporate deployments. However, if you can spring for the Nexus 7, then you’ll probably be a bit happier with Google’s tablet.

Moto X Review

motox-story-gettoknowI’ve been living with the Moto X Developer Edition for about a week now and have been using it as my daily driver for as long as I’ve had the device.

The Good: The natural language processing in the extended Google Now functionality is impressive to say the least. In my limited and admittedly anecdotal testing, the voice response is the best of any device currently on the market; it beats the pants off of Siri for instance. Though the X does not run stock Android, it’s pretty close to it and is far snappier than any recent skin from other vendors.  Though this might be a bit of a personal quirk, the fact that the device is assembled in the USA is a big plus for me — call it sentiment I suppose.

The Bad:  Pound for pound the camera doesn’t match that of the HTC One. The body is plastic. Despite the plastic being fairly solid and high-end it is still plastic and the device looks a little low-end when stacked against the HTC One; however, it holds up just fine compared to the Galaxy S4, another plastic device.

The Ugly: Beyond the plastic body the phone is pretty well designed. However, it is a bit underwhelming when compared to the marketing that preceded it. In particular, a lot has been made of how customizable the body is but unless you are an AT&T customer (at least in the US), you aren’t going to be able to customize the device’s body any further than “black or white”.

Conclusion: The voice recognition software in the X is impressive, however, beyond that it is basically an Android 4.x device. In a way, one of the best features of the X is how close it follows stock Android and allows the elegance of the system to shine through, only slighted hindered by customizations.


2013 Nexus 7 Review

BQNK5AYCEAAM_vEThis weekend I got a tip that my local Best Buy was selling the new Nexus 7s early, so I jumped in my car and bought one of the 16GB ones. Strangely, they didn’t have a display out or even a sign for the tablet but after speaking to a salesman, he told me that he could sell me one but wasn’t allowed to put the display out yet. I agreed to purchase one and within a few minutes was driving home, excited to unpackage my new device. I’m not going to bother with a description of my unboxing as it was nothing special and frankly those feel a bit fetish-like to me.

The Good: The new Nexus comes with the latest version of Android installed and has Google Play Games, Google’s Game Center competitor, preinstalled. It is impossible to stress how thin and light the Nexus is — I am really impressed by this. The biggest advantage this tablet has over competitors however is speed. It is a performance monster; if you want specs, please take a look at the product page. In short, this is probably the best Android tablet for gaming that is currently on the market and will probably remain so for at least six months — a virtual eon in the Android world.

The Bad: Other than the weight and thinness of the device, there is little to love in the hardware design of the device; it feels like the sort of design that you’d get from an engineer driven company and frankly it doesn’t hold up to Apple’s devices in terms of visual aesthetics. Despite the new Nexus being a performance monster, there don’t seem to be too many apps on the Play Store that really take advantage of that; time will probably solve this problem but for a launch experience it is disappointing. Still, none of that is particularly terrible. However, the device required two (that’s right two!) system updated before I was able to use it. It’s 2013 and I understand, though I am not pleased, that most devices will need a day one patch but to require two patches on day one is ridiculous.

The Ugly: I’ve already dinged Google for the hardware design of the Nexus 7 but I’d be remiss if I didn’t mention the absurd top and bottom bevels of the device — they’re too big and it makes the device look awkward Additionally, as strange as this might sound, the device feels aggressively masculine; it is stark black and comes installed with a metallic blue default background. I’m not sure why marketers feel that Android devices need this weird manly feel (take a look at any Verizon “Droid” ad for an example of what I mean) but I assume this device is meant to appeal to more than just twenty something males, so a more neutral approach might be the way to go.

Conclusion: The Nexus 7 update is about what I’d expect from a hardware device from Google — a lot of power with design as little more than an afterthought. To be fair, it isn’t much worse in terms of user experience than the previous Nexus 7, but since HTC has released the One the bar for hardware design on Android devices has been raised  (at least in my eyes) and Google needs to get with the program.


HTC One Review

I recently acquired HTC newest Android device the HTC One. I can say with confidence that the One is the best Android phone I’ve seen. In fact, it is really the only one worth buying.  In the One HTC has learned what every other Android device manufacture still fails to understand — hardware design matters.

Unlike its nearest current competitor (the Samsung Galaxy S4) the One is made from something a bit more substantial than plastic.

Of course, the HTC One is still an Android device (sorry Android fans) and there are still a lot of compromises. Some of them don’t really matter (or shouldn’t matter) to the average user, such as the lack of a removable battery. Others, however are a bit more jarring. For instance the One does not have stock Android and, though this version of Sense is by far the best yet, Sense still leaves a lot to be desired.

Still even the downside of Sense isn’t really that bad. For instance, HTC has done a lot of impressive work with the phone’s camera that you lose if you route and install another ROM on the device.

Bottom line, if you are in the market for an Android device, then the HTC One is the one to get. Questions? Comments? Dogmatic rage? Find me on Twitter and Google+. This post was brought to you by Code Journal and Fingertip Tech, INC

Play Means War

google-play-logo11Google IO fever is in full swing and, though there are a lot of interesting things coming out of this year’s IO, but there is only one real threat to Apple’s leading position in mobile Monetization. This is Play Games. Play Games functions a lot like Game Center with a bit more and (naturally) a focus on Google+. Play Games allows many of the features that Game Center does but has one killer feature: it is cross platform, supporting Android and iOS. You might wonder why this matters, but the truth is (according to the Apple App Store top grossing and top paid charts) the developers that are making the most money are the game developers. It has been argued that one of the big advantages that iOS has is that it is the prefered platform for mobile game developers — meaning that they release on iOS only or iOS first.

Play Games looks really impressive, but the most attractive aspect of it is that it is a backed Game Center like service that is not run by Apple. Let’s be honest, Apple makes great devices and some pretty good client-side software, but their backend services leave a lot to be desired. Game Center in particular was crippled when Letterpress — one of the first games to actually take advantage some of Game Center’s more advanced functionality — was released and became an overnight success. The reality is that Apple left this door open by not focussing on backend-technologies and now Google is going to be able walk through it.

If Android is able to generate roughly the same revenue as iOS for developers, Apple will have to act quickly to preempt an exodus of developers. This might sound a little overboard, but there is a frustration in the iOS community in all but the most hardcore Apple fans that Apple’s policies are increasingly hostile toward independant developers, but as long as the business case is strongly in Apple’s favor, Apple can do whatever it wants. If Google was able to change the business story, they’d be changing the entire landscape.


Whose Android is it Anyway?

imagesAndroid is now the majority smartphone OS in terms of market share and a significant portion of that Android market is owned by Samsung. What’s interesting is that Samsung is not just shipping Google’s Stock Android but rather is skinning it with its own custom UI. I am not a fan of third party skins on Android, but it seems a very large portion of the consumer base seems to be in love with their Samsung Android phones. It’s good to see a manufacturer doing so well with Android, but it is becoming hard to tell what the relationship of Samsung to Android is. We Google as the operating system vendor and a number of hardware vendors taking that software and selling it on their devices. In this simplified scenario, it sounds a lot like the Microsoft PC manufacturer system; where Microsoft licenses Windows to them (for a fee) and those vendors are allowed to ship Windows with (optionally) some of their own software installed but not real modifications to Windows itself. In the Android world, we have a slightly different story. Manufacturers take Android but also (can and often do) modifications to it before they bring it to market. The end result of this seems to be that a lot of  non-tech consumers are identifying with Samsung (or another hardware vendor) rather that the Android brand.

This seems a bit strange but also inevitable to me. That’s mostly because Google has dropped the ball on branding Android from day one. Sure the tech community is fully aware of Google’s relationship to Android, but the tech community is a relatively small community and (though I hate to say it) not terribly important outside a certain amount of developers the ecosystem needs to make apps. In the early days of Android, Google allowed Verizon to coop the Android brand with its “Droid” campaign. This was a terrible blunder. Anecdotally, I have had conversations with consumers that had seen the campaign but had no idea what Android is and that it was from Google. When you ask a “normal person” who makes Windows or Mac OS X, they pretty much all know.

The question becomes what influence if any does Google actually have over Android? Sure they have terms for using their foolishly named Play Store (notice that it is no longer branded “Android”) and Google Apps apps, but that feels like a wiffle ball bat rather than Louisville Slugger — most of those apps could be easily replaced if a large manufacturer (ie Samsung) wanted to. Beyond that Google can’t really do anything. Due to Android’s licensing terms Google is not in a great position for any sort negotiations.

It might sound silly now but there is a very real possibility that Android could live on with manufacturers’ support (again mainly Samsung) even without Google’s support. To me, this sounds like a very real possibility as Google seems to be favoring Chrome and web technologies over Android’s Java based technologies. None of this is really bad, but it just makes me wonder where Android would be had Google stuck to its guns regarding branding and maintaining control of the project and code; before all of you write in, yes I know attempting to lock up the code would have been legally difficult given the OSs license, but I do believe we would have a better operating system for it. Questions? Comments? Dogmatic rage? Find me on Twitter and Google+. This post was brought to you by Code Journal and Fingertip Tech, IN