Could you introduce your app in a few sentences?
Succintly is an ad-free, account free iOS App that acts as a browser extension. It lets you get a summary of any webpage (article, blog post, etc.) directly from the browser.
You can save that summary to read it later. And you can listen to it as well.
For now, Succintly knows how to deal with English, French and Spanish.
I was sometimes bothered by the UX of some news websites: non responsive, ads, pop ins covering the page, and all the funky stuff you generally encounter when accessing a website on a phone.
I had this idea to create an extension that lets you quickly read the TL;DR of a Website directly from the browser. I then added a Text-to-Speech feature.
Currently, Succintly is only available on iOS, the Android version should be there in a couple of weeks.
What made you decide to use/switch to Reac Native?
When I had the idea for Succintly, I started the first draft with Swift. But I found out that every aspect of the app was totally feasible with React Native.
I am quite familiar with the ReactJs/React Native ecosystem. I find that developing apps with React Native is quite pleasant. It provides some advantages over other tools: writing layouts with JSX and Flex, it provides a good developer experience: Hot reload, debugging with Chrome, fast feedback loop, etc.
Multiplaform was also a selling point: When I finished writing Succintly for iOS, I had about 70% of the app already functional on Android. But I still have to take care of some aspects that need to be written with Java.
How did you transition to React Native?
I have to admit, writing apps with Xcode was not really engaging for me; but this is more of a personal taste.
I was already familiar with React Native, having written a couple of apps already with RN. Bootstrapping the app was a breeze.
There were two missing parts: How to do text to speech via RN and how to write an RN app that supports share extensions. I got that covered quickly. I had to write a native text to speech bridge and I was lucky enough to find a module handling share extensions with React Native.
Have your tried other cross platform technologies before using React Native?
Yes, I am familiar with Ionic and Xamarin. While I enjoy writing apps with Xamarin, I find that the developer experience remains faster and better with React Native: Same front-end way of doing things but with a twist :)
And now, I am tempted to try out Flutter as it has been getting some attention lately.
What has your experience been working with React Native in terms of app performance, have you noticed any impacts?
I did not have any performance issues while developing this app. The main challenges for Succintly are on the backend side: How to extract the best summary of an article as fast as possible ?
The API works by extracting the relevant sentences of a website.
It takes a url and tries to detect the language, the title, a relevant image and the five more relevant sentences.
I tried several algorithms for summary extraction. The one that is used is based on lexrank
I find that It provides good results on articles or blog posts.
There are several implemations of this algorithm that work pretty well.
I am still working on fine tuning the summary extraction part: Providing faster execution time and improving the summary with contextual data such as named entities and keywords.
The API is written in flask, served by uWsgi and nginx and hosted on digital ocean.”
How has adopting React Native affected developer productivity?
I am familiar with front end development (ReactJs, Angular, etc.), so adopting RN was natural. It was almost the same ‘workflow’.
Things can get faster with tools like Expo. I am using it for another application I am currently writing. And I find it useful as it hides some of the complexity, given a simple application.
There is still room for improvements regarding React Native: less moving parts, stable releases, more visibility towards known issues or release plans.
Which tools, libraries and frameworks are part of your development process with React Native?
I use VSCode with React Native tools extensions and Prettier. VSCode remains my primary editor when I am dealing with React Native and all front end development.
In terms of libraries, it depends on my needs. For Succintly it was:
- wix native navigation,
- Redux (with thunk middleware),
- React native share extension
- And react native filesystem
Generally I tend to use wix native navigation: It has good performance and the docs are clear.
And lately I started using Expo for simple applications that do not require writing native bridges.
What are some things that you don’t like about React Native or that need to be improved?
As I said earlier: Stable React Native releases and better visibility toward new React Native releases.
Upgrading a React Native version can be challenging sometimes.
I find that React Native misse an ‘official’ navigation module : There are many navigation libraries, choosing one can be confusing and time consuming.
Anything else you would like to mention?
You can learn more about Succintly here
Succintly is a free application and It will remains free. If you have any question or feedback, I would love to hear it.
If you are looking for an experienced React or React Native developer to work on your next project, located in France, be sure to contact me at firstname.lastname@example.org I will be glad to discuss directly with you.