I needed to choose a full stack of tools for cross platform mobile application design & development. After much research, trying different tools, and 18 years of mobile design & development, these are what I came up with that work for me today:
For the client coding I chose Framework7 because of its performance, easy learning curve and very well designed, beautiful UI widgets. I think it's perfect for solo development or small teams. I didn't like React Native. It felt heavy to me and rigid. Framework7 allows the use of #CSS, which I think is the best technology to come out of the #WWW movement. No other tech has been able to allow designers and developers to develop such flexible, high performance, customisable user interface elements that are highly responsive and hardware accelerated before. React Native contains a very limited interpretation of #CSS which I found very frustrating after using #CSS for some years already and knowing its powerful features. The other very nice feature of Framework7 is that you can even build for the browser if you want your app to be available for desktop web browsers. This is not possible with React Native yet.
For the user interface design and prototyping I use Figma. Figma has an almost identical user interface to Sketch but has the added advantage of being cross platform (MacOS and Windows). Its real-time collaboration features are outstanding and I use them a often as I work mostly on remote projects. Clients can collaborate in real-time and see changes I make as I make them. The clickable prototyping features in Figma are also very well designed and mean I can send clickable prototypes to clients to try user interface updates as they are made and get immediate feedback.
For the UI icons I use Font Awesome Pro. They have the largest selection and best looking icons you can find on the internet.
For the backend I chose Graphcool Framework. It has great customer support and a very accessible free startup plan for working on new projects. I was never a fan of relational databases so I'm very pleased to see NoSQL / GraphQL databases coming to the fore and I'm happy to use them. No more server side API development required! NoSQL databases are so much more flexible and the way I think databases were meant to be from the start.
For the IDE I use Visual Studio Code which is blazingly fast and silky smooth for editing code with the ultimate TypeScript checking (since both products are written by Microsoft).
I use some Ruby scripts to process images with ImageMagick and pngquant to optimise for size and even auto insert responsive image code into the HTML5. Ruby is the ultimate cross platform scripting language. Even as your scripts become large, Ruby allows you to refactor your code easily and make it Object Oriented if necessary. I find it the quickest and easiest way to maintain certain aspects of my build process.
What tools do you use? Have you tried these ones?
Great post Jonathan.
My main TypeScript IDE is WebStorm. Its heavier on battery life, so maybe not a good idea for out-and-about coding, but I love Jetbrains IDEs for their refactoring tools, test runner, keyboard centric navigation and index searches and so forth. Their all products pack is handy for me when swapping between languages - same keyboard shortcuts, look&feel, etc.
For backend services I like using Node.js, with TypeScript and Neo4j for either RESTful or GraphQL interfaces. I've been promising to publish some details about this setup soon.
Thanks Jasper. Yeah I see the benefit of Jetbrains for multiple languages. I've used it before. For now I just love how smooth and light Visual Studio Code is since I'm only focusing on Typescript.
When I have some spare time I'm going to try Neo4j GraphQL. Can it be configured for lower end servers also? The minimum requirements are high for what I have at the moment.
I used to do node with Webstorm as well. Even had the paid one. But i’ve now switched to Visual Studio Code and I’d say it’s the best JS IDE out there. Way faster than WebStorm and it’s terminal is legit unlike that of Jetbrains. I highly recommend trying out VS Code. (For Java though, nothing beats IntelliJ)
Also, for my ultimate scripting language, mine is Python. Just because it comes out of the box of OSX and most linux flavors.