I get asked this a lot so I did a post about it.
Simple really.
A Sailfish application has a much higher UX potential than any other platform counterpart. The whole operating system is designed around an unobstructed and efficient use of applications. What you as a user want to do.
In addition to
harmonized gesture usage, Sailfish apps have also unique UX pattern called
cover actions, that's missing from all other platforms. These allow you to interact with a common application feature, directly from your home screen without entering that app.
Why not use Android apps. Well, even though Android apps run on Sailfish OS, they don't always feel right because of the
button based navigation at the screen bottom. So each native Sailfish application removes another Android app dependency and makes the user experience more complete overall.
Native apps are also much faster to load, use far less disk space and memory than Android apps. Every aspect of a Sailfish application is designed the mobile use in mind. Because when you're on the move, you are limited by four things.
A limited screen size, a limited battery capacity, a limited storage and limited processing power. But the biggest limitation is our own inability to focus on multiple things at the same time.
There is a live and active world out there. A ton of things happening everywhere. Both lovely and dangerous things. When you use your smartphone, you want to go in fast and get out faster. The world and people close you are the thing you don't want to miss out. Especially when it's about being part of something really wonderful, or avoiding something really painful.
That's why Sailfish OS and Silica apps work like they do. They're intended for mobile use, leaner in many ways than the competition. And what they can do, will get you there and back before anything else out there. So you wouldn't miss out the important things.
Now, fire up the
SDK and let's
get started.
Creating a Sailfish apps
Start from an app idea. The best ideas arise out from a problem cause. You don't want to do more on the go, but less by doing the right things.
Don't look at a desktop applications, or other mobile applications for that matter. Start from a concrete problem. Don't start off from a feature. Look into why that feature is needed.
Process your ideas before you sketch out anything. Leave the huge ideas and projects for desktop environment.
Only after you've done that, start coding.
Look at example projects from
github, and also shamelessly use both the
Silica references and component gallery project that comes with the SDK. Most of the time, you don't need to write your own components. Unless that's the main point. But remember, from the user perspective, how your app fits the platform UX, is more important than how nice graphics you can make or transitions you can code.
Naturally, it's much faster to use existing blocks and focus on solving a problem instead of solving an interface. Also, Jolla will focus on keeping those components working. If our apps are based on them, they’re much more resistant to UI breakages caused by any system update. Apps done with Sailfish Silica components also load faster and scale nicer to different resolutions.
As much as it's fun, avoid innovating on top of already new interface paradigm. It will not help your users. They've just learned a new way to use their devices. Please reinforce that.
Prioritize. Promote the main app functionality. Allow favorites and some history to help access frequently used content. Make your app excellent at the thing it does. Not mediocre at everything another app does. Follow
common UI patterns. Keep your graphic assets to minimum to reduce app loading time, memory usage and disk space, and overall improve the app performance. Users have an ambience for their devices, don't intentionally block it, even if you don't personally like it.
Sometimes you have to build something from scratch.
Then, make it look like it fits. Use styles from the Silica
theme object. Avoid hard-coding colors, pixel or font sizes. Because if taken to another screen resolution, your app interface will break. Build it to last. Silica component gallery sources and provided references are again your friends to see how components internals look like. Pay attention to UX details and avoid
common pitfalls.
Finally, spend time on performance optimization. Load your pages and content asynchronously if possible, to avoid blocking the UI and gesture use. Profiler is your friend. Rince and repeat. No matter what the app does, if it’s not smooth, it’s not very pleasant to use.
Also, don't do things alone. Do it together. Ask from the guy next to you.
There's a lot of people among you who know their stuff and can help. Don't get blocked by lack of support. And many people don't. As a result, Sailfish OS has a huge ratio of community created apps. Apps created by self-organized individuals, out of their own free will. They work on them in their spare time to allow us all make some things easier on the go.
They do it regardless of any payment mechanism in the Jolla store and part of those apps are not even accepted, because some features of the OS are not considered stable yet to hook in by third party apps.
Our community set up their own
repository to overcome that. So that there would be an open alternative market to get apps easily from.
You don't do something like that if you don't believe in what you're doing. They believe that having native apps matter. And I agree.
My hat's off to all of you.
Thank you for putting your though and dedication in something you believe in.
Thanks for reading and see you in the next post. In the meantime, agree or disagree, debate or shout. Bring it on and spread the word.