Dear developers, dear platform owners and stakeholders!
Just a few weeks ago I started developping my first app for Tizen (web app for wearables). I am a professional developer usually deep in the Microsoft .NET environment (Azure, Web applications, mobile) and I usually do not have anything to do with Linux or other environments in general. As an outsider coming from an entirely foreign “world” I want to share some personal thoughts about Tizen and its developer environment as I think it is not really attractive from a developers point of view and I really hope that this helps to improve it. First some positive perspecitives:
- the ability to use Html, Css and Javascript is really nice and helps new developers to start quickly with their existing knowledge and skills
- all the tools are there, including samples, emulators, documentation, community etc.
- there’s even access to real devices (although they are all outdated and for some scenarios there is no device, see circular ui wearable aka Gear S2)
This is a nice base to start with, but on the other side they are also absolutely required and commonsense (every competitor in the market offers the same), so no extra points there. Now to some of the negative aspects which really annoy me:
Everything is just an alpha or a beta at best! Just look at this website itself: it is slow, it is confusing, it is hard to find information and most of the time the informations are even wrong or at least incomplete or outdated. And it’s full of bugs, i.e everytime I visit the page it appears in another language and stuff like that. That’s just outdated and unprofessional.
Just a few examples:
- there is no documentation (or only asking the community or googling it will reveal where it is) on how to certificate an app to run on a test device. Something that is a) absolutely not obvious and self-explaining and b) every dev will need to do so in the development process. And btw: certificates by mail in 2015, really?!?
- So much basics are not really getting explained unless you’re getting in trouble. I.e navigating between pages: there is no word about the fact, that existing pages are just being hidden instead of navigated to like it actually happens when you test the app in the browser (ctrl+4). That wouldn’t be a problem if these things were self-explaining or common, but they are tau specific and not really what one usually expects, so this should be properly documented
- If you take a look at this page’s description of the distribution process you’ll only get pointed to http://seller.tizenstore.com/, but for wearable apps you’ll need to go to Samsung’s seller office. Not a big deal, but such little but common things should be noted as well. It just can’t be that one has to google it or as the community for simple basics as this.
Another point why I call the SDK an alpha or beta is that it is simply incomplete. If you look at the design guidelines for the wearable circular UI (which is really beautiful and innovative by the way!) you’ll note many exiting controls, but that’s all you get. Most of them are not provided by the SDK or one of its extensions, you’ll need to implement them by yourself. Sure we can, but I just don’t see the point where every developer has to implement the same controls by himself. One proper reference provided by the SDK is simply a must have. In my entire career I’ve never seen an SDK where the guidelines propose a control which then is not even present in the SDK. Also there seems to be a big difference between native and web apps. Take the time picker control for example: on the native implementation it looks almost like the one presented in the guidelines, but the web implementation is just a cheap compromise. That would be acceptable if web applications where just a minority, but if you look at the issues in the community you’ll see that native and web are more or less equaly used. Don’t get me wrong: of course it is possible to implement whatever you’ll need, but as a developer (=customer of your platform) I do not want to get down into details what the platform should deliver. If you provide guidelines which control is to use when then you absolutely have to deliver these components, including examples. I don’t want to waste time with stuff that is basically there; I don’t want to do your work. I want to develop my application, my product and then in the counter draw the platform owners benefit as more apps lead to more users and of course they also get a cut of the sales. That’s how it work, not the other way around.
Then there’s fragmentation. i.e the Tizen 2.4 preview is out for mobiles but not for wearables. Why is that? Clearly there’s a lot of effort in behind and I understand that there might be technical reasons behind that decision, but at least a time-line for the previews/releases should be provided. Or at least one word about the wearable preview/release? Would it hurt that much?
In my eyes all these points make Tizen as platform looking very uninspired and half-backed. It clearly has potential, but it appears as the initiators are not really certain about their own platform, so how should (new) developers be? You’ll need to push the platform by polishing it down to the last detail.
Right now it just ‘works’ and that’s fine, but if you want Tizen to grow and become a more powerful platform you’ll need to attract developers, you’ll need to give them the tools they want, you’ll need to make it more fun to develop and you’ll need to give real reasons to develop for Tizen!
This is just my personal sight, so do you agree with me? Or is it just me and everything is perfectly fine? Please don’t get me wrong: this is not about making Tizen more bad than it is, it is only an honest and personal opinion on how to drastically improve the quality and appearance of the platform for dev’s which then sooner or later will account also for end-users.