Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Tuesday, September 10, 2013

JVM... Don't call it a comeback!

After being away from compiled languages for a while, I've been consulting for a company which uses Java for development.

First time in a while (Forgoing my Android apps, which are too plain to call 'real' java programming), and I must admin I find going back to the code/ compile/ deploy/ test cycle quite tedious - Scripting languages have made me quite impatient :)

Setting up a development environment is hard. The specific startup had no 'real' development and deployment environment, and being an 'ant' fan I created my own setup (maven got me too confused), so I could work.

The advantages, though, are obvious - You make less spelling mistakes. You can use inheritance (Important for some solutions). And because it's a 'device mode' program (Rather than most of my recent work, which is GUI related and needs a touch...), you can actually automate unit tests!

And now for the question - Is there a need today for high level VM type compiled language? (Like C# or Java)? The same programming that I'm doing now could be done with php, or even node.js? (By writing a simple bridge between node and the c libraries...)

I'm actually not sure by now. It's possible that the next generation of programmers would never know what compilation means.

Saturday, March 16, 2013

A small rant about Apple

If you have an app or a book published for both Google Play store and the Apple iTunes store, you must know that one as well:
The second you login into the Google Developer console, you see a neat little dashboard, presenting your apps statistics.
With the iTunes connect portal, you need to press two annoying links before you need to wait a couple of seconds and then, hopefully, you get your daily download graph and stats for your app.

This is annoying.

It's amazing how Apple, which stand for design for most people, offer such poor usability for its developers. And don't get me started about XCode.

Saturday, January 26, 2013

Is 7" the new 10"?

7" devices are a rage.
After the success of the first 'wave' of 7" devices (1st Gen. Kindle Fire, Nexus 7), and the iPad Mini cannibalizing both iPad AND iPod sales for Apple, the 7" (to 8") tablet category seems to be taking over the tablet market.

After playing with 7" devices for a while (Both nexus and iPad mini), I can definitely understand why. The form factor is simply more successful than 10" tablets. Easy to hold with one hand (iPad Mini feels as light as a kindle), good enough to work with (Thumb type is possible) - Seems like this is the spot for tablets.

So, while 10" tablets are getting more and more laptop-like (Windows 8 convertibles, for example), 7" devices will get retina-quality screens, and probably become the new form factor size for tablets.

Tuesday, December 18, 2012

Mobile web and sandboxing

I've had a few discussions in this blog about mobile web vs. native in app development.
One of the major problems with creating a mobile web app was performance. When an app needs to display a large list of items, rendering a huge DOM tree with lots of layers causes app performance degradation, resulting in poor user experience.
Well - The guys at sencha came up with a neat idea - 'Sandboxing', which means fragmenting your content items into small iframes.
The basic motivation behind this is that it's easier for the browser to render lots of smaller DOM frames than rendering one huge DOM tree. With multi core processors (And supporting OSs like iOS5/ Android 4 and above), this approach becomes even more effective.

You can read more about it here.

[Thanks Danny Livshits for the link]

Monday, December 10, 2012

Google services outage and android crashes

Yesterday afternoon, I've started experiencing hiccups in my Galaxy Nexus (Running 4.2.1).
Crashes, phone getting stuck without provocation from my side, sluggish performance.
Turns out Google's services had a major disruption yesterday.
Coincidence? I don't think so. Problematic? Very much. But this is what we sign for, and this is why Google's devices are so cheap... Actually, Apple's devices are the same in terms of cloud dependency (Siri, iCloud etc.), but you pay more...

In the meantime, legislation is having it's way with Apple's software patents. That is good news for ANYONE creating software these days. (Read the last paragraph of this post for more).

Sunday, October 7, 2012

If a tree falls...

In the forest, and no one is around to hear it does it make a sound?
If an independent developer publishes an app in the play store, and no one knows about it, will anyone download it?

Apparently, no.
And not only that, but when you search the app by exact name (No parenthesis), it would still appear 10th in search results.
This one's only regarding the play store, as the iTunes works differently.

Why is that? Could it be that Google promotes whoever pays them? I'll try to find out in the coming weeks. 
The first step would be publishing a link to the app from this blog. (And if you want to teach your kid English letters, you should try this... It's free.)

Let's see how it does soon.

https://play.google.com/store/apps/details?id=com.myartichoke.youngletters


Monday, September 24, 2012

Android app published... Some impressions.

After sorting out all the issues, along with some GUI tweaks, I finally got around to publish the application at the play store. (Get it here!)

Publishing process was a breeze - Compile the code in release mode, create a signing key, sign the app, upload (Along with promotional graphics), click publish, and that's it!

Seems like Google has the policy of 'garbage in/ garbage out', which means that rather than testing your app thoroughly (Like Apple do), which makes the whole publishing process take ~8-10 days, your app gets published instantly.

Which means that if an app sucks, Google counts on the crowd to rate the app accordingly. If it crashes a lot, or dead on arrival, you receive reports via the developer console, and can also 'unpublish' the app, update it as much as you want to etc.

Though I prefer the Apple way, which means that even if the app sucks, it still passes the bare minimum for usability, but I'm quite sure that this process helped android catch up the gap in 'total number of apps in the market' with iOS...

Wednesday, September 12, 2012

Young Letters - Tales of the Android project.

I've started working on the Android version for my young letters application.
Because I'm working with phonegap, I was quite sure that Android porting would work seamlessly, and boy was I wrong...

Getting started was easy. Download Eclipse, Android plugin and SDKs, define the project and setup the phonegap plugin was quick and painless.

However, my code didn't work.
First off, the newest version of phonegap (2.0.0) has some bugs. Seems like after the major overhaul from 1.x, several things (Like playing sound...) were left undone. So I've decided to revert to the same phonegap version I'm using in iOS (1.8.1), which solved the problem.

Some code issues, like resource file paths (Base path on android is different) and HTML5 canvas behaving differently than iOS webview were solved.

Orientation handling is also different than iOS: With Android, it's harder to define orientation changes behaviours (Young Letters is only landscape, for now). In iOS it's a breeze, just select the supported orientations, and you're good to go.

And then I was left with one major issue, which I'm handling now: The variety of android devices and viewports. With iOS, there's only one variation of a screen. The width/ height ratios stay the same between iPhone versions (iPhone 5 supports that ratio as well by framing the extra inch), but with android devices, you have to implement an adaptive HTML view.

Though it was solved in the native environment, the major lesson I've learned was to use percentages and dynamic placements of buttons, rather than set layout (Like I'm doing on iOS).

Then I need to test it with several devices, and see that it works.

Finally there's the whole publishing process in the Google Play store, but we'll get to that once the app is ready!

Friday, August 31, 2012

The most annoying flaw of the Galaxy nexus

Don't get me wrong. I love my Nexus phone. Android jellybean is great, performance is great, Google voice and Google now rule, however there's one annoying flaw.
One of the reasons I got this phone was its form factor. The 'no buttons' concept and smooth, curved design really appealed to me. But being a long fingered man, I tend to hit the 'home' button a lot when typing on he space bar.
This is quite annoying, as you need to reactivate the app. This even happened twice when typing this post...
Well, no one's perfect.

Sunday, August 19, 2012

In vacation... Notes about devices.

Having the need to be connected even during vacation, I took an iPad (3rd gen) alongside my new galaxy nexus phone.
After using those two devices for a while, here are some insights:

  • Android has caught up with iOS. Jelly bean, google voice, google now and other touches (app swapping, the software buttons, a great, huge screen) make my wife's iPhone 4s seem old. 
  • Even the form factor of the nexus (and the new s3 as well), the curved shapes, the soft buttons - make apple's device look old. Apple better come up with a killer iPhone 5, otherwise they're in trouble.
  • Considering the fact that the next nexus device is also around the corner (rumored November), things seem interesting in the mobile market. 
  • I've finally understood the difference between the iPad 2 and the new iPad. I knew that the new screen is great, but only after moving from 2 to new, and working on the new for a while, you get to understand the meaning of a large retina screen. Everything looks analog. You can't see pixels. Amazing. 
  • I've played with the new galaxy note tablet, and though it's amazing fast, it's still no iPad. But android devices are catching up. Can't wait for a retina-like jellybean powered tablet. 
  • If the next MacBook air has retina, I'm in.
  • Still no word from iTunes store about my app - submitted 8 days ago. Waiting sucks.