What we're about

Welcome to the Official Google Developer Group (New York City) (https://developers.google.com/groups/chapter/102033742326416578905/)

We are a technology-based organization that is completely run by a community of volunteer organizers. Because of this we are always looking for volunteer help in running events, and are open to community suggestions and contributions in terms of speakers, event venues and sponsorships. Just talk to one of the organizers and we'll be happy to work with you. We typically meet on the first or second Monday of each month for our regular meetups. In addition, we may have "special" events (e.g., ML Camp, Study Jam etc.) scheduled outside of these dates, at a different interval.

Our Mission: To translate technology awareness into actionable learning for personal and professional growth.

About GDG NYC

We are software developers, designers, educators and students with an interest in learning about emergent technologies in areas including (but not limited to) mobile, web, wearables, cloud computing, education technology, data sciences and smart homes.

Our events can vary from featured Tech Talks (40 mins or more) to Short Talks (20 mins), Lightning Talks (5 mins) as well as focused events (workshops, hackathons, study jams).

Our talks may feature Google technology (e.g., Chrome, Android, AngularJS, Google Glass, Android Wear, Polymer, Google Compute Engine ..) but also extends to competitive technologies, products and platforms.

Our primary goal is to create actionable networking, collaboration and entrepreneurial connections for technology enthusiasts in the New York City.

Want to speak at our events? Sign up here: http://bit.ly/gdgny-speaker-signup

Want to volunteer to help at any of our events? Sign up here: http://bit.ly/gdgnycvolunteer

CODE OF CONDUCT

All members of the Google Developer Group (NYC) are expected to adhere to our Code of Conduct. Simply put: "Be Excellent to each other". Harassment of any kind (physical, verbal, digital) will not be tolerated and can potentially lead to expulsion from events, or even from the community. A more detailed version of the Code of Conduct is found here: http://bit.ly/gdgnyc-code-of-conduct

History

The founding organizers of this meetup are long-time members of the Google Developer Group community. Prior to March 2016, this meetup existed as "GDG New York (https://www.meetup.com/nyc-gdg)" and we organized several successful events around Android, Cloud, Polymer, VR, Wearables and Chrome under that banner.

In March 2016, we made a collective decision to rebrand and launch "GDG NYC" as the official Google Developer Group New York City chapter and look forward to working with both the Google Developer advocates and with the greater New York City developer community, to make this city a showcase for next-generation technologies. Join us!

Disclosure

We are not run by Google. However, we are a listed Google Developers community and count on them as one of our sponsors (specifically as venue hosts and for signature events like Study Jams). Any opinions and activities here are our own and do not reflect that of Google (the corporation).

Upcoming events (1)

Android Worldwide, January 2022 - Free Online

Online event

PLEASE RSVP USING THE LINK BELOW
https://www.airmeet.com/e/811a8380-7327-11ec-9c9c-73370a863646

It's time for another Android Worldwide event! This is a perfect time for you to meet other engineers from around the world and learn from some incredible speakers.

Android Worldwide is an international group of developer communities coming together to make a joint impact. We're passionate developers aiming to create highly engaging, inclusive, and fun experiences to help members learn, grow, and meet like-minded people.

Agenda:

8:15 AM Networking

9:15 AM Kotlin Multiplatform. Memory management old and new way by Anna Zharkova

The main idea of Kotlin Multiplatform, as well as other cross-platform SDKs, is to optimize development by writing code once and share it between different platforms. However, dealing with a common code base could have some nuances that should be figured out and solved according to the platform specifics. And implementation in a common base could be really tricky. One such moment is dealing with memory management, multithreading and concurrency. KMM SDK uses the specific for every native platform version of Kotlin: Kotlin/JVM, Kotlin/JS, or Kotlin/Native. Every version includes special Kotlin language extensions, tools, and libraries specified for a particular platform. I would like to examine the specifics of both platforms, to show the difference between Kotlin Native and Kotline JVM, what problems could be faced in providing a common solution for both platforms, and the ways to provide a working solution. And how to work with new memory management model in 1.6.0 version of Kotlin/Native.

10:15 AM Maxing out SQLite performance by Rashanjyot Arora

This talk aims at helping developers improve database and query performance, covering the nuances of SQLite (and Room, especially in a reactive android world). Why is this important? - Apps are increasingly storing more and more data and some of them are even becoming completely offline first. - Screen refresh rates are continually growing, and the faster we can cook up the data to be rendered, the better it is. What this talk will cover? - What are Indexes and their types (single-column, multi-column, partial, covering, expression-based etc). - Evaluating impact of indexes via examples. - Support for indexes in Room and how to get around what Room doesn’t support yet. - A common issue with queries in the reactive world and how to get around it. - Pitfalls of using database views. - (Optional) Understanding advanced SQLite features such as pragma commands - vacuum, optimize etc.

11:15 AM Meet Someone New

Match & converse one-on-one with participants for a limited time duration.

12:00 PM In-Memory Full Text Search with Kotlin by Kshitij Chauhan

This is a session on building an in-memory full-text-search library with Kotlin In-Memory FTS is a technique to let users search through data that's not persisted to a database. It can be used to build powerful search experiences over ephemeral data, but it's not trivial to implement. This session will cover how to build an in-memory full text search library in Kotlin using Coroutines and Kotlin Data Science libraries. Topics: - Tokenisation and Stemming of text documents - Inverted indices for fast reverse-lookups - Building a document processing pipeline with Kotlin Coroutines to generate full-text search indices

1:00 PM Rock-Solid UI and Instrumentation Testing by Sinan Kozak

We Android developers use the "flakiness" word more than the "stability" word while talking about Espresso and Instrumentation tests. We cannot truly trust flaky tests. Instrumentation testing will continue to be part of our lives even with Jetpack Compose therefore, we need stability. Running all UI tests before merging any code is possible, and it saves us a lot with 400+ integration tests. Unfortunately, stability is not something that comes out of the box. A certain level of architecture, proper thread usage, and test setup with helper rules are required. There is an uncountable number of things that affect UI tests. Good thing, there are explanations and solutions for most of the flakiness. In this talk, you will learn more about best practices to increase test stability, how to utilise Test-Driven Development with UI testing, and how this will help you find bugs earlier.

2:30 PM Meet Someone New

Match & converse one-on-one with participants for a limited time duration.

3:15 PM Develop your app with lots of "flow" by Gemma Socorro Rodriguez

Do you want to learn how to use Flow (and StateFlow)? Let's use it to create an musical app, to compose together a symphony, applying reactive rhymes and using as base the MVI architecture in Android. In this talk we will share this journey to create a musical app in Android, applying the latest concurrency trends from Kotlin and this beloved reactive Android architecture. We will go from the origins and basics of the architecture, its advantages (and downsides), to the current implementation using StateFlow.

4:15 PM Don’t get stung by OWASP - An intro into writing code for greater Android Security by Ed George

In this session, we will take a dive into OWASP's top threats for mobile security, the common Android security pitfalls we all succumb too and look how we may code in a more security-focused mindset going forwards.

5:15 PM Meet Someone New

Match & converse one-on-one with participants for a limited time duration.

6:00 PM Guide to destroying codebases: the demise of clever code by Gabor Varadi

We try to write the best code possible, simplify future maintenance, optimize for code reuse, and apply best practices and principles to help us achieve this. However, what if this can serve as a double-edged sword? In this talk, we'll analyze different ways and look at various examples on how through either under-use or over-use (or mis-use) of certain principles, we can inadvertantly introduce enough error surfaces, unintended complexity, or accidental coupling - that the only hope for a fix is a rewrite.

7:00 PM Android for Everyone: Accessibility in Android by Sierra OBryan

Accessibility creates a better experience for everyone. Jetpack Compose simplifies development and can help us more easily build more accessible apps. In this talk, we’ll dive into some common use cases, Android Accessibility APIs, and compare these to the accessibility tools available in Jetpack Compose. We’ll also talk about general best practices, helpful tools, and how to test accessibility in your app.

8:00 PM Meet Someone New

Match & converse one-on-one with participants for a limited time duration.

8:45 PM The Golden Principles of Software Architecture Applied To Kotlin Multiplatform by Ryan Kay

The purpose of this talk is to convey three important principles in software architecture (explained below) in a general way, but using code examples and case studies from a Kotlin multiplatform project to keep it relevant to most Android devs. The principles themselves are quite language/platform agnostic but the last principle is particularly relevant to multiplatform dev. 1. Separation of concerns: I will explain the kinds of code which are observed in all kinds of three layer architectures (i.e. MV-Whatever), without appealing to any particular style/pattern. The idea is to get developers to stop worrying/wasting time about whether they found "the best" architecture (which doesn't exist), and instead to find a suitable architecture based on project requirements. 2. Abstractions: I will explain different kinds of mechanisms for abstraction (interfaces, abstract classes, inheritance), and as a bonus, Kotlin multiplatform's source sets (using expect actual keywords). I will also address the issue of when you should prefer an abstraction, or simply a concrete class. 3. Framework/Library minimalism: I will explain the benefits and difficulties that come with using 3rd party libraries and frameworks versus keeping most of your codebase standard library, and isolating libraries to specific end points of the application. I will also emphasize how doing this is particularly relevant to multiplatform programming in terms of code re-use.

9:45 PM Improving Gradle Builds by Mohit Sarveiya

As the number of modules in your code base increases, speed and consistency of your Gradle builds becomes very important. However, improving your Gradle builds can be a tricky endeavor. In this talk, I’ll address these common questions in improving Gradle builds. - How do we benchmark & profile our builds? - How do you read build scans to identify problems? - How do we maintain a consistent modular structure? - What tools can you use to speed up builds? I’ll take a deep dive into these questions with examples and insights from my experiences.

10:30 PM Networking

Agenda

---

Host

Shalom Halbert - Rocket Insights (Software Engineer)

---

PLEASE RSVP USING THE LINK BELOW

https://www.airmeet.com/e/811a8380-7327-11ec-9c9c-73370a863646

Photos (1,660)