The Big Anti-Apple Rant

Fanboyism

Apple is not perfect, and I know it. I’m not trying to be a Fanboy, even if some people have a hard time distinguishing between Fanboys and and people who like things that are well-designed. No real ordering for my criticism:

Podcasts

Apple supports these, and the built-in support in the iPhone is better than any other app in the AppStore out there as far as I can tell. But I’d still like it to be better. I want to be able to subscribe to podcasts and have them download in the background when there’s WiFi. This feature is clearly missing (and please don’t tell me to 24/7 run my computer for this). Why do I have to do that manually?

Creative Commons License photo credit: eriwst

iCloud lock-in

Steve Jobs said that iCloud’s purpose is to lock people into Apple’s ecosystem. This is not the best for the consumer, unless to turn the argument around and say it’s better for the customers to go with Apple’s products only. Apple, open up an API for external software.

Windows compatibility

Another lock-in argument is that other times, the compatibility with computers running Windows is not great. For example, if I connect to the computer of my girlfriend, copying files is kinda slow and using her printer doesn’t work instantly (which differs to using some networked printer).

Window Borders in Lion

Yay, we can now drag windows on every side to with the mouse pointer to make them bigger or smaller! Sadly, most of the OSX windows were not programmed with this in mind and have zero pixels of borders. This means while I drag the pointer over the border a very short time the icon changes and I can grab the border, but often times I don’t hit this time-window. Apple, how about adding 1px of border on the outside of the window when I hover in it’s direct surrounding, so I at least have a change of grabbing it?

AppStore

The AppStore is your only hope to make money on Apples platforms as a developer. So, if you don’t get featured, you’re most likely lost. This is a lot of power on Apples side, and it should be more obvious how to get featured in the app store other than to make great apps that Apple’s employees like. You should also get more statistical data about the usage of the AppStore, so you don’t have your marketing guys spam keywords all over the place.

AppStore Search

It would also nice, if the Appstore would rank abandon-ware and very poor software lower in searches if was was a) seldomly downloaded b) poorly rated or c) not updated for a very long time. Maybe it should even forget thing that are too bad.

Network connections in Hotels or Academic Networks

Oftentimes, I connect to Hotel networks, free WiFi networks or networks in academic institutions and it just works. About 50% of the time, it doesn’t work and there’s a lot of fiddling with network specific settings involved before I get it to run. How about making this better, as usually Windows is king here.

Next generation programming language

Apple sticks with its old programming language Objective-C without having a contender for the next decade. For example, C# with .NET 4.0 is such an advanced language, that I barely have the heart to compare them. Please don’t comment this. I know you know better than me, but Apple has no solution for stronger machines other than making the devices more competitive by making them smaller.

Contracts

The iOS ecosystem is pretty locked down, with apps having only hacks to communicate to each other. How about stealing contracts from Windows Phone and Windows 8?

Sandboxing

That being said, Sandboxing is pretty bad for app developers if you forgot some entitlements that are necessary to run the software.

Preview

Preview doesn’t always work very good if the PDF is very big. Why, Apple?

Ergonomics vs. Looks

When there’s a design decision between the looks and the ergonomics of an Apple product, the looks win out (explained by John Siracusa on Hypercritical). Apple, please give us bigger arrow keys and better mice! (And Samsung, please don’t copy the questionable design-decisions from Apple!)

iChat / Messages / Twitter

Why is Twitter not integrated into Messages? Why is iChat not integrated with the iOS messages?

Conclusion

Apple is not perfect, and this is what I criticize. I’ll try to fill this list with more that I don’t like about Apple stuff, and remove things that get better. If you have comments, please leave out the price debate, as copying companies like Samsung show that the hardware in Apple-quality cannot be done cheaper.

iPhone Home Button Doesn’t Work?

Swimming In The iPool
Yesterday, my iPhone home button stopped working, restarting and synchronizing the device didn’t help – so it didn’t seem to be a software issue. I could further prove that by testing out the button very strongly, and in fact I found a spot in the upper left side of the button where a strong press could activate the button.

As I had this effect once before and it went away magically all by itself, I thought of just waiting a bit. One hour later when I was at work, everything worked normal again. Maybe it has some connection to heat, humidity of the air, particles between moving parts that had released themselves on the ride by bike that I do when I go to work. So, if you’re having this problem, my advice is waiting a bit, and retrying over a full day till sending it back.

Creative Commons License photo credit: JD Hancock

Marketshare and Winning and Religion

Each war is different, each war is the same
As I listened to the podcast Hypercritical with John Siracusa and Dan Benjamin lately, they discussed why we always give so much credit to the marketshare. Siracusa’s point was, that “we geeks” always feeled that the best operating systems on computers had “lost” to Windows, and that since this time we always were confronted with the PC-users who told us “Why use Linux / Mac? Can’t you see that everyone uses Windows?” even if it wasn’t the best platform (in our minds). (Well in this quotation, I’m not one of us, but one of everyone as I always found Windows better.) Therefore, since the iPhone “won”, we were happy that Windows Mobile lost. Since Android “won”, we were happy that Apple looses. If WindowsPhone7 should win, we’ll all be unhappy again – because it’s Windows again.

I never had this opinion. I would always look at how easy an operating system lets me fulfill the tasks I need to fulfill, including the initial learning curve, therefore I chose Windows on computers and iPhone on smartphones. I hate having to configure stuff all the time. I hate how the Android OS makes me click on way too small buttons and phone makers try to combat this with bigger screen sizes. I hate when I have to make way more clicks or text input to get anything done. And I really don’t like when the web browser stutters or I doubletap on a paragraph and it zooms to the sidebar. All pretty small things (yeah, rewriting the UI elements isn’t really a small thing), but if this were different, I’d definitely chose Android. And if Windows Phone gets more powerful and easier to use than iPhone, I’ll choose that one. I really don’t care about religion. And I never advised anyone to pick an iPhone “because everyone does” or “because it won”, and this is my only plea in this whole post: when you’re advocating for Android, please don’t mention that more copies were sold, as this has nothing to do with the quality of the hard- and software.

Creative Commons License photo credit: kevindooley

As this post might have religious comments, here’s a disclaimer: I like iPhone best among smartphones, so in your opinion I’m a fanboy – no need to mention that again. I also love customization in my phone from time to time, so I’m jailbreaking – but I also didn’t miss it much when there wasn’t a good jailbreak available. And for the pricing: since here in germany the T-mobile monopoly fell, iPhone is not too pricy anymore – so leave me alone with “I can’t pay for it” – if you can pay 500€ in two years, you can also afford 600€.

Objective C Pitfalls for Java and C# Programmers

These were my first experiences with Objective-C, Xcode and the Mac

Can you read this, Luke Skywalker?
If you came from Java or C#, your most prominent errors or pitfalls with Objective C might be:

  • Pointers and the asterisk: http://stackoverflow.com/questions/1105815/placement-of-the-asterisk-in-objective-c
  • The type “id” is always a pointer, so no asterisk there
  • Strange effects happen when you “#inport” .h files with cyclical references. I didn’t find a better solution than having id instead of the Type I wanted to use in one of my classes
  • There are no null pointer exceptions. This means you’ll all the time miss the initialization of some object or some reference and won’t recognize it. Since recognizing this, I love null pointers exceptions. But this is language design in Objective C. So if you definitely need to be sure, throw an exception if you want to be sure and / or add some unit tests.
  • When the application crashes, you won’t get meaningful answers from the console often times. To get some more information you’ll need to set a breakpoint in the last thrown exception statement. You can find out more here.
  • When you want to use a simple integer like 5 and get the warning / error “makes Pointer from integer without a cast”, you need to use [NSNumber numberFromInt:5]
  • Always correct header file first, implemetation file second and always correct from top to bottom, as the compiler does this too. When the compiler sees an error in the header file for example, it might make up 50 more errors somewhere below. This is literally top-down debugging.
  • Don’t try to mess with XML too much yourself. Use this nice, free and fast XML framework instead.
  • There are great resources for iOS development out there, for example the full open source Canabalt game or framework-like libraries that could make some things easier, if you see it before you’ve implemented all such things yourself.
  • To find such resources, I’d read this blog and follow it’s writer on Twitter.
  • Oh yeah, and Google and Stackoverflow should fix the rest.

Creative Commons License photo credit: Stéfan

Stop mocking Microsoft and Nokia

Its easier to make fun of unpopular brands like Microsoft and Nokia but please acknowledge that they together might have the power to shake up the smartphone market.

Microsoft has the people and the brains to maintain a really good mobile OS. In fact, most people whining about WinPhone7 have never seen it or are just anti-Microsoft anyways. WinPhone7 but it has a nice concept and a real nice language and framework for developers. And they don’t feature-overload it like Google does with Android – instead they’re aiming for constistency and a polished OS.

Nokia has the resources to cheaply produce high quality phones and the infrastructure to sell them anywhere in the world. And let’s face it: Microsoft doesn’t produce phones, so it’s nothing new that they’d love to have Nokias with WinOS anyways. The only new thing in this news is that Nokia learned from it’s failure to create a good mobile OS and gives up on that.

Final point: who of you doesn’t love a third competitor besides Android and iOS?