Getting Started with coding for Jolla Sailfish OS Artem Marchenko @AgileArtem 29.03.2014, Tampere, Finland 29.03.14 @AgileArtem http://www.codingsubmarine.com
May 24, 2015
Getting Started with coding for Jolla Sailfish OS
Artem Marchenko@AgileArtem
29.03.2014, Tampere, Finland
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Today
• Quick start on emulator– And how to run on device
• Structure of the build process and artifacts• Packaging for app store• Troubleshooting / debugging• Support channels and further questions
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
QUICK START
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Preparing SDK1. Get Python (project renaming script will need it)2. Install SDK https://sailfishos.org/develop.html3. Run its Updater ( Help -> Start Updater)4. Get HelloWorld Pro from
https://github.com/amarchen/helloworld-pro-sailfish and open it (you need a project for Updating part of SDK)– Configure for all available platforms
5. Rename project into harbour-my-great-app via rename-to-my-project.py
6. Start Mer build machine (can take a couple of clicks)
7. Install more updates via Sailfish OS tab
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Starting app on emulator
• Set i486 platform as active
• Deploy as RPM
• Run subproject src
29.03.14
Start emulator and app
29.03.14
Running tests on emulator
• Run /usr/share/tst-harbour-my-great-app/runTestsOnDevice.sh– As README.md says
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
@AgileArtemhttp://www.codingsubmarine.com
Connecting device• https://sailfishos.org/develop-firstapp-article.html covers it well
– Works fine on WiFi– Couldn’t make it work via USB
29.03.14
Then run on device• Same as on
emulator• Just don’t
forget to select armv7 platform
29.03.14
Continue in QML
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
STRUCTURE OF THE BUILD PROCESS
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Project directories
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Building-packaging
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
PACKAGING FOR APP STORE
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Build RPM package
1. Choose ARMV7 platform
2. *Clean* not to package i486 binaries
3. Deploy RPM
Validate
Submit to harbour
• http://harbour.jolla.com• Icon templates can be found at
https://sailfishos.org/apps_icons.html– As mentioned in README.md
• You’ll need screenshots– Use Screenshot or SailshotMe app on device– Upload to Dropbox via Sailbox app
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
TROUBLESHOOTING DEPLOYMENTS
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Troubleshooting failed deployments and not runnable apps
• Examine the content of the Mer machine and emulator directories. And device too if you need
• Is covered well at https://sailfishos.org/develop-faq.html
• Mer: ssh -p 2222 -i ~/SailfishOS/vmshare/ssh/private_keys/engine/root root@localhost
• Emulator: ssh -p 2223 -i ~/SailfishOS/vmshare/ssh/private_keys/SailfishOS_Emulator/root root@localhost
• Real device: ssh [email protected] – Address and password from the Developer Settings on device
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Debugging
• C++ debugging doesn’t work from IDE• If you comfortable with GDB, it is supposed to
work• Rumors tell that QML debugging does– I failed to get it working
• Use logging• Use automated tests
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Getting support and further questions
• IRC: #sailfishos on freenode (irc.freenode.net)
• This slideset – http://www.codingsubmarine.com/tag/class/@AgileArtem on twitter
29.03.14 @AgileArtemhttp://www.codingsubmarine.com
Artem needs help
• I want to make a Telegram client, help me understand what the biz model for it could be like– And for a collaboration of several authors?
• Push @JollaHQ to communicate more about business opportunities for small devs
• Contribute to HelloWorld Pro, Log4Qt Demo• Try my apps in Jolla app store and review them
(Flashlight, Quick Launcher)29.03.14 @AgileArtem
http://www.codingsubmarine.com