Fragments 2019

Fragments 2019

State of mobile engineering, state of platforms, hardware and user research.

Make a submission

Submissions are closed for this project

TERI auditorium, Bangalore, Bangalore

What you can expect from the Bangalore edition of Fragments on 30 March:

Fragments was launched in response to the fragmented nature of engineering and software development for mobile. Much changed for mobile engineering in 2017 when React Native entered the landscape and cross-platform mobile development took off in a big way.

At the recently concluded ReactFoo, we talked not only about the ecosystem emerging with ReactFoo, but also how organizations are structuring teams for Android, iOS and cross-platform mobile development.

Coming back to Fragments, the Android versus iOS debate seems to be settled with Android winning the turf. Now, with Flutter taking off as a platform for mobile engineering, the battleground has opened between React Native versus Flutter. Who will win is not only a matter of adoption and user base metrics, but also which platform has a stronger community around it.
On 30 March, speakers Priyanka Sabhagani and Ajin Asokan will share BookMyShow’s and Zerodha’s experiences (respectively) with React Native and Flutter, helping participants evaluate each platform’s strength and weaknesses. We look forward to deeper discussions around Flutter, where the platform has piqued a great deal of interest from developers (who have to write less code), but greater skepticism about Flutter’s capabilities with respect to data storage and related issues from senior developers.

Apart from Flutter, the Bangalore edition of Fragments will feature talks on Kotlin and native app development. An interesting question to discuss here is the decision to go native versus when not to go native with your app. Which factors inform such a decision?
The other discussion which Raghunath Jawahar, Varsha Saha and Abhinav Rastogi will take up is what native app developers can learn from the mature web front-end architectures. The discussion will steer around the following topics:

  1. The dynamic nature of JavaScript versus static languages like Java/Kotlin/Swift which is used to develop native mobile apps.
  2. Expectations and user experience on web versus mobile.
  3. The asynchronous nature of mobile platforms and their lifecycles – the unique challenges this factor presents.

Finally, Fragments Bangalore will showcase talks on:

  1. Image uploads and Contraint and Motion layout.
  2. Optimizing the size of your mobile app.
  3. Voice, and its role in building augmented experiences for mobile apps.
  4. How the concept of Seams can be applied for building flexible and testable apps.
  5. Building predictable and high performance workflows for mobile app engineering.

Who should participate in the Bangalore edition of Fragments Conference?

  • Mobile engineers working on Android and cross-platform apps.
  • Senior developers and tech leads.
  • Backend developers and fullstack engineers.
  • Product managers.
  • Product engineers

Event details:

Date: 30 March 2019
Time: 9:00 AM to 5:30 PM
Venue: TERI auditorium, Domlur, Bangalore

Contact:

For more details, call us on 7676332020 or write to us on info@hasgeek.com

Future editions of Fragments:

Fragments will be held in Kochi and Hyderabad in 2019. Dates will be announced in April. If you wish to speak at any of the future editions of FragmentsConf, submit a proposal here: https://hasgeek.com/fragments/fragments-round-the-year-proposals-2019/

Hosted by

How do you make a great mobile experience? Explore with Fragments. Follow Fragments on Twitter more

Abinash Mohapatra (Engineering - Platform Engineering)

@twistedfork88

Image uploads for mobile web

Submitted Feb 1, 2019

Uploading images to user reviews came up as yet another task. But once I delved into the challenges and areas of improvement, I found it to be quite challenging. EXIF, resampling, encoding to other formats all on the client !!! And doing all of this while keeping the main thread free, thats the challenge I’m solving. Bonus: some WebAssembly magic too !!

Outline

I wanted the process of uploading images on the web to be as good as native in terms of capability and smooth/performant as well. Based on our requirements, when we upload an image, the application was supposed to show a thumbnail which should take into account the EXIF orientation factor so that the thumbnail is shown in thr correct orientation. The next big challenge was to reduce the overall upload size during submitting the file to the server. Here we resorted to a Hermite resample filter that allowed us to further reduce the payload size. Since a user could upload maximum of 5 images in one go, we wanted to keep the main thread as free as possible so all of the above-mentioned tasks actually run in a worker. Using transferrables to reduce the time invokved in an othetwise structure clone postMessage was another area of investment. Moving all work into. a worker gave us the opportunity to work on the new amazing OffscreenCanvas API which enabled us to move all computations to the worker thread. Finally a final optimisation (WIP) is to encode our images to webp format to check if the payload size could be further reduced. Since browsers do not support encoding of images as a native construct, we resorted to Webassembly for achieving the desired result.

Requirements

JavaScript, Web Worker, PostMessage, Canvas, Browser APIs performance costs

Speaker bio

I work as a senior enginner in Flipkart Lite team. I love experiments and performance.

Links

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Ratul Sarna

MVI architecture on Android without RxJava

Unidirectional data flow patterns such as MVI are catching up steam in the Android community as they give provide a cleaner way to develop and debug frontend applications. But working with such a pattern requires a reasonable level of proficiency with reactive streams like RxJava. My talk would help build a similar pattern without using RxJava and instead using only Android Architecture Component… more

19 Feb 2019