Fragments 2017

Fragments 2017

A conference on the mobile ecosystem in India

#About Fragments:

Fragments is a two-day, single track conference on the mobile ecosystem in India. The conference will feature talks – full-length and crisp – panel discussions, and Off-The-Record (OTR) sessions.

We are looking for proposals in the following topics:

  1. Modern Development Practices

    • How are modern development teams structured?
    • How do you achieve cross platform design/feature parity?
    • How do your collaboration, decision making, and development processes adapt to accommodate cross platform teams?
  2. Continuous Integration/Continuous Delivery

    • How is your CI/CD pipeline designed to allow you to test, build and deploy to multiple platforms (Android,iOS,Web) simultaneously?
  3. Design

    • What tools and processes to designers follow when they have to design for multiple platforms simultaneously, given that each platform as it’s own guidelines/styles?
  4. Localisation and Accessibility

    • How do you handle localization and accessibility in modern mobile apps?
  5. Progressive Web Apps

    • Are progressive web apps the way forward?
    • Are progressive web apps a better way to solve cross platform development? What’s their future?
  6. On the ground case studies

    • Talks on how companies have changed their development workflows, processes, teams, app architecture, and tooling over time.
  7. Platform specific talks

    • We are also open to platform specific technology talks that are novel in their content or approach.

Commitment to open source

HasGeek believes in open source as the binding force of our community. If you are describing a codebase for developers to work with, we’d like for it to be available under a permissive open source licence. If your software is commercially licensed or available under a combination of commercial and restrictive open source licences (such as the various forms of the GPL), please consider picking up a sponsorship. We recognise that there are valid reasons for commercial licensing, but ask that you support us in return for giving you an audience. Your session will be marked on the schedule as a “sponsored session”.

Selection process

Proposals will be filtered and shortlisted by an Editorial Panel.

** Make sure to add links to videos / slide decks when submitting proposals. We will not review proposals without detailed outlines or slide decks and preview videos.**

The first filter for every proposal is whether the technology or solution you are referring to is open source or not. If you are referring to a proprietary technology, consider picking up a sponsored session.

The criteria for selecting proposals, in the order of importance, are:

  1. Key insight or takeaway: what can you share with participants that will help them in their work and in thinking about the problem?
  2. Structure of the talk and flow of content: a detailed outline helps us understand the focus of the talk, and the clarity of your thought process.
  3. Ability to communicate succinctly, and how you engage with the audience. You must submit link to a two-minute preview video explaining what your talk is about, and what is the key takeaway for the audience.

No one submits the perfect proposal in the first instance. We therefore encourage you to:

  1. Submit your proposal early so that we have more time to iterate if the proposal has potential.
  2. Talk to us on our community Slack channel: https://friends.hasgeek.com if you want to discuss an idea for your proposal, and need help / advice on how to structure it.

Our editorial team also helps potential speakers in honing their speaking skills, and rehearsing at least twice - before the main conference - to sharpen the focus of talks.

Passes and honararium for selected speakers:

A speaker is NOT confirmed a slot unless we explicitly mention so in an email or over any other medium of communication.

Selected speakers get a pass to the conference and networking dinner. We do not provide free passes for speakers’ colleagues and spouses.

We also pay an honararium of Rs. 5,000 to each speaker, at the end of their talk.

Travel grants for outstation speakers:

Fragments 2017 is funded through ticket purchases and sponsorships.
We try to provide full or partial travel grants for at least two international and two domestic speakers.
First preference in awarding grants is given to women speakers, persons of non-binary genders, and speakers from Africa. If you require a travel grant, indicate this in the field where you add your location.

Important dates:

Deadline for submitting proposals: 30 July, 2017

**Conference date: ** 12-13 Sept, 2017

Contact

For more information about speaking proposals, contact fragments.editorial@hasgeek.com.
For tickets and sponsorships, contact info@hasgeek.com or call +91-7676332020.

Hosted by

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

Garima Jain

@ragdroid

Dagger 2 Android : Defeat the Dahaka

Submitted Jul 2, 2017

We have had many talks and blog posts on Dagger and Dependency Injection till now. I must say that people have done a great job at explaining various concepts of dependency injection, it’s technical details and also case studies. But, in my opinion, Dagger is something which has become a part of our coding lives now. Yet, from time-to-time we still find ourselves lost in the world of dependencies and dealing with “The Dahaka” (a beast of generated code).
In this talk, we will aim to Defeat “The Dahaka” (a storm in the ocean of generated classes) or at least try to tame the beast. We will firstly go over the basics of Dagger2 and try to unleash the beast by going into the generated classes and finding out various patterns. We will then go into the details of those patterns and learn how to apply them. We will then find our way towards the technicalities of Dagger Android. Also how to move towards Dagger Android without blindly applying those annotations and also trying not to die in the hands of “The Dahaka” by putting the leash back on the Beast.

Outline

  • Starting to learn about Dagger? Start by creating a @Module and a @Component. Add a @Singleton scope to it.
  • Dependencies getting out of hand? Create another dependent component or a sub-component.
  • Creating another component? You should create another scope!! And if this is not enough Create Qualifiers, use LazyInjection,ProviderInjection, staticInjection,AsyncInjection , MultiBinding and what not!
  • Still alive? Now we present you with Dagger Android and I am sure that it will certainly kill you :P
    But wait! What exactly is the relation between a Module and a Component?
    We don’t know that. Thankfully! Dagger 2 generates all it’s code at compile time and we can actually see for ourselves what’s going on behind the scenes.
    We can see that for our every Component, Dagger generates a DaggerComponent which has a "has-a” relationship with our Module.
  • So far so good? Here comes “The Dahaka” (an infinite storm in an ocean of Providers, Factories, Builders, MemberInjectors, DoubleChecks, Lazy, ... ) You can easily get lost in those classes.

“Most people think dependency injection is like a river that flows swift and sure in one direction, but I have seen the face of dependencies and I can tell you they are wrong. Dependency Injection is an ocean in a storm. You may wonder who I am and why I say this; sit down and I will tell you a tale like none that you have ever heard!” — Quote inspired from Prince of Persia

In this series of blog posts, we will aim to Defeat “The Dahaka” (a storm in the ocean of generated classes) or at least try to tame the beast. We will firstly go over the basics of Dagger2 and try to unleash the beast by going into the generated classes and finding out various patterns. We will then go into the details of those patterns and learn how to apply them. We will then find our way towards the technicalities of Dagger Android. Also how to move towards Dagger Android without blindly applying those annotations and also trying not to die in the hands of “The Dahaka” by putting the leash back on the Beast.
After reading these series of articles you should get a better sense of what goes on behind the scenes and how to smartly move towards Dagger Android and still keep your cool :)

TL;DR

Here’s how we are going to tame the Beast :

  • **“Codes of Time” : Introduction **: We already have really great articles about Dagger2 basics. This will be a collection of my favorites references and a quick walkthrough of the basics.

  • **“Face of the Dahaka” : Definitions **: A sneak peek at the generated code and various Dagger terms and patterns. Let’s swim in the ocean of Factories MemberInjectors ProviderInjections LazyInjections AsyncInjection .

  • **“Unleash the Beast” : Relationships **: A Tale of Scopes, Components, Subcomponents, Dependent Components and the Builders.

  • **“Defeat the Dahaka” : Battle **: Let’s use the tools at hand like Builders @BindsInstance Component.Builder Subcomponent.Builder DoubleCheck Multibinding… in order to tame the beast.
    Dagger 2 : Component.Builder

  • **“Befriend the Beast” : Implementation **: Dagger 2 Android 😎!

Checkout the Series of articles on Medium:

I am also giving a similar talk on “Dagger 2 Android : Defeat the Dahaka” at Droidcon Berlin, 2017 😃

Requirements

Lots of excitement and an open-mind :)

Speaker bio

Garima is a computer science post-graduate from IIT Jodhpur and currently working as an Android Developer at Fueled, Noida having an experience of 4 years in Android Development. She is an active community speaker and tech-fi blogger who believes in sharing and learning with the community. Her journey of community sharing started with Droidcon India, 2016 and since then she has posted multiple blog posts on her medium account and spoken at Droidcon Boston, 2017 and taken a workshop at GDG New Delhi. She is also speaking at Droidcon Berlin, 2017.

Comments

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

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

{{ errorMsg }}

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

Hosted by

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