As you may have seen in Rob Lauer's tweet (below), we gathered a few weeks ago to brainstorm NativeScript's destiny in 2019. We had a one-day session with the team's managers, our awesome DevRel Advocates, and special guests 👉 Eddy Verbruggen and Igor Randjelovic!
.@NativeScript in 2019 ladies and gentlemen!#Vuejs #Angular #BeyondMobile pic.twitter.com/vZiNOjgCkZ
— Rob Lauer (@RobLauer) November 15, 2018
I won't focus on the details of how the day was structured and organized but instead prefer to focus on the results and how we see the framework evolving during the next year.
One thing I would like to note is that nothing is set in stone - and any feedback from you, our community, is more than welcome!
So, let's start!
Nativescript-Vue gained speed in 2018 and we will continue to support Igor and all the contributors. The core team will pay special attention to the NativeScript UI plugins support for Vue and will make sure to remove any blockers to the Vue.js integration. What current plugin authors can do to strengthen Vue.js support is to review their plugins and make sure they are NativeScript-Vue compatible. More details will be available with the next releases of {N} and {N}-Vue.
This all provides a pathway for NativeScript-Vue to be officially supported as part of the core NativeScript framework in early 2019!
The team will continue working on improving the developer experience with HMR and Webpack with the goal for Webpack to become the only way to develop with NativeScript. No fear, it will happen gradually:
tns run
without the need to provide --bundle
flagWe already showed that development with Webpack enables HMR, provides better build times of the app during development, and optimizes the app in terms of startup time, so we think that this should be available to all of you out of the box without the need of using different options like --bundle
or --hmr
. We expect it to be a huge win for all the {N} lovers out there.
And since according to the NativeScript survey results, "Unclear error messages" is stated as the top issue while developing NativeScript apps, we will review the current error handling mechanism and improve the way errors are presented in the CLI.
In addition, we'll pay increased attention to the current VS Code extension in terms of Intellisense and stabilization and make it the preferred tool to use during development.
We introduced code sharing capabilities with Angular in 2018 and we're dedicated to continuing to evolve this option while providing all the tooling needed for a larger percentage of code shared. Our goal is to enable you to share more than you can now and to do it in an easy and automated way with provided tooling.
We will invest time to build a better starting template that will allow you to:
We will also work on a style guide that will provide you with strong recommendations on:
A comprehensive code sharing story with NativeScript and Vue.js will appear in 2019 as well!
Why share code between web and mobile, when we can just use that same code on web?
This is the idea behind a very experimental idea we have called nativescript-web. The concept is to actually generate 100% of your web code (specifically PWA) from your existing NativeScript app. This would provide 100% code sharing across all platforms, and even provide a path towards macOS, Windows, and Linux desktop support via Electron!
Keep in mind this is, by far, the most experimental and least well-defined feature on our roadmap! We will have to see what 🎁 2019 brings...
Currently, analytics and Crashlytics can be used but there isn't much documentation or content covering the topic. We also realize that the errors logged are not always helpful and clear enough. First, the team will focus on providing a meaningful native stack as opposed to memory pointers and line numbers.
The second area we will improve is exposing errors in the JavaScript code to the error reporting services – they usually contain the business logic of the app and currently those are completely hidden. Errors, while not crashes, are still important for the health of your application. They will also have to find their way to your dashboard! In addition, we'll better document the integration with existing analytics and Crashlytics services.
The team will invest time in enabling some of the most requested CSS properties during the past year. We'll open a discussion in GitHub soon to identify which ones to start with. And since there are a lot of CSS properties that might be enabled, we would embrace any community help in this task!
We also know most of you have web experience and love the Chrome Dev Tools, so we'll add support for Chrome Dev Tools CSS Inspection as well.
Last but not least, we'll collaborate with the community to enable Material Design to its fullest extent.
We'll invest in improving the getting started experience by providing more samples, improved documentation content, and better error messages during environment setup.
We also realize that the unit testing approach the framework currently provides has some issues so, we'll work on stabilizing it.
Performance is an aspect which can always be improved and is a task that never ends. We expect that all the Webpack integrations and optimizations mentioned previously will contribute to performance of both app startup times and in-app experience.
Glad you asked!
👀 Have you identified an area from the above mentioned where you already made some progress - or just want to collaborate with the team and do a PR? Just post a GitHub issue about it to contact us and discuss your future contributions.
🎉 Have you built a cool tab bar, action bar, or other eye-catching UI? Celebrate your achievement by sharing it with us and we'll add to the NativeScript samples!
📊 Have you already integrated an analytics service and/or Crashlytics? Have extensive unit testing in your app? Share your experience in a blog post and let us know about it!
📢 Spread the word about NativeScript in your local area.
📝 Having 100% access to native APIs out of the box adds infinite opportunities for integrations and usage of the framework. Write a blog post to share your experience with NativeScript (reach out to Rob Lauer and we can feature it on the NativeScript blog!)
🔌 Contribute to the ecosystem by building a plugin or a nice sample app.
💡 Post and answer issues in Github!
👫 Help community members in NativeScript Community Slack or Stack Overflow.
🎲 Want to contribute but you don't know where to start? Challenge yourself and pick any of the good first issues to give yourself a try, follow the corresponding repository contributing guidelines to setup your environment for development and find instructions on how to do a pull request.
📚 Improve the documentation!
🎨 Have you built a nice-looking app with {N}? Show it off and submit it to our Showcases.
This is the output of the collective effort of our Engineering team, DevRel team, and our community (including YOU). It's a solid and ambitious plan that will make NativeScript even better!
Happy NativeScripting and let 🎆2019 be even more successful than 2018!