SlideShare une entreprise Scribd logo
1  sur  19
Nextcloud
Android App Development
Process Insights
Andy Scherzinger
Spare-time Android Dev
AndyScherzinger 14th Sept. 2016
Nextcloud Android Client
Overview
• Forked in May 2016
• 4 Feature releases since then
• ~200 new users per day
• Maintained by two spare time devs
• OSS – GPLv2 & AGPLv3
• Published on Play store and F-Droid
Nextcloud Android Client
Overview
• Instant uplod for photo & video
• Manual uploads
• Multi account capability
• Document provider (read-only)
• File sharing incl. permissions
• Minimal media player
• Multi select with CAB
• Quick actions via FAB
• Respects metered wifi
• Available in 32 languages
Topics
• General Development Model
• From Idea to Release
• Tools used in between
• Release Channel
General Development Model
Collective Code Construction Contract - C4
vs.
Gitflow
vs.
Github Flow
General Development Model
Collective Code Construction Contract - C4
• Use OSS share-alike licence
• Use Git+Issue Tracker on a hosted platform and document your code style
• Trunk-based development
• Create issue, open PR, get it merged
http://rfc.zeromq.org/spec:42/C4/
master
General Development Model
Gitflow
http://nvie.com/posts/a-successful-git-branching-model/
master
hofixes
release
develop
feature
feature
General Development Model
Github Flow
• Create Branch
• Add commits
• Open PR
• Discuss and review code
• Deploy to production
• Merge
https://guides.github.com/introduction/flow/
master
branch
General Development Model
Decission: custom Github Flow
• Create Branch
• Add commits
• Open PR
• Discuss and review code
• Merge
• Deploy to designated release channel
https://guides.github.com/introduction/flow/
master
branch
From Idea to Release
1. Open issues for discussion
2. Positive decision on issue
3. Implementation + PR creation
4. Code Review & Fixes
5. Release to designated channel
approved
1. to develop
2. developing
3. to review
4. to release
Tools used in between
Development
• Github for
– dvcs
– issue tracking
– to enforce peer reviews
• Travis for
– unit testing (active)
– integration testing (deactivated atm)
– Quality metrics / coverage (tbd)
Octocat by GitHub, Inc. | Travis CI mascot by Travis CI, GmbH
Tools used in between
Development
• Transifex for
– translations
– Pushed to github repo via Jenkins job
• Jenkins for
– Pushing translations to the code repo
Transifex by https://www.transifex.com | Jenkins mascot by https://jenkins.io
Tools used in between
Communication
• Quassel (irc) for
– Short living instant discussion
– Quassel saves the irc history (server)
• Discourse for
– Community forum (feedback/discussion)
– Beta/RC announcements
Quassel logo by http://quassel-irc.org | Discourse logo by Civilized Discourse Construction Kit, Inc.
Release channels
Beta releases
Feature
beta1 beta2 beta3 beta4 beta5
Release
feature branch
to review to release
Release channels
From rc to stable
1.2.0 1.3.01.2.0 RC1 1.2.0 RC2 1.3.0 RC1
Feature Release
~2 weeks ~2 weeks
Release channels
From beta to stable
1.2.0 1.3.01.2.0 RC1 1.2.0 RC2 1.3.0 RC1
Feature
beta1 beta2 beta3 beta4 beta5
Release
Release channels
From beta to stable - Summary
• Labeled „3. to review“ gets merged to beta
• Beta branch gets released as required
• Beta app installed in parallel to stable/RC
• Release Candidate needs to survive in the wild
for two weeks
– then stable gets released
• Using semantic versioning
Semantic verisoning: http://semver.org/
Nextcloud Android App
Development Insight- Summary
• Provide an easy entrance
• As little process as possible
• As much process as necessary
• Document your process
• Utilize release channels for community power
• Collaborate, plan and discuss in the open
easy, open & transparent
Some links
For your after work browsing
• Development / Git Processes
– http://rfc.zeromq.org/spec:42/C4/
– http://nvie.com/posts/a-successful-git-branching-model/
– https://guides.github.com/introduction/flow/
• Nextcloud Android App Process & Links
– https://github.com/nextcloud/android/blob/master/CONTRIBUTING.md
– https://www.transifex.com/nextcloud/nextcloud/android/
– https://webchat.freenode.net/?channels=nextcloud-mobile
– https://travis-ci.org/nextcloud/android/builds/
• Used Tools
– https://www.transifex.com
– https://travis-ci.org
– http://semver.org
– https://jenkins.io
– https://lgtm.co
– http://www.discourse.org
– http://quassel-irc.org

Contenu connexe

Tendances

Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011Frank Karlitschek
 
2012 Eclipse Android SDK
2012 Eclipse Android SDK2012 Eclipse Android SDK
2012 Eclipse Android SDKVolkan Ulutaş
 
Trunk-Based Development
Trunk-Based DevelopmentTrunk-Based Development
Trunk-Based DevelopmentBryan Liu
 
Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Makeesben1962
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerLuca Milanesio
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessBartosz Kosarzycki
 
Golang Microservices meetup
Golang Microservices meetupGolang Microservices meetup
Golang Microservices meetupGirish Ramnani
 
A Journey to Improve Infrastructure Compliance With InSpec
A Journey to Improve Infrastructure Compliance With InSpecA Journey to Improve Infrastructure Compliance With InSpec
A Journey to Improve Infrastructure Compliance With InSpecCliffano Subagio
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14msohn
 
Git in Continuous Deployment
Git in Continuous DeploymentGit in Continuous Deployment
Git in Continuous DeploymentBrett Child
 
Android OS & SDK - Getting Started
Android OS & SDK - Getting StartedAndroid OS & SDK - Getting Started
Android OS & SDK - Getting StartedHemant Chhapoliya
 
Flutter: Future of App Development
Flutter: Future of App DevelopmentFlutter: Future of App Development
Flutter: Future of App Development9 series
 
CLI, SDK, Doc... What if we generate them?
CLI, SDK, Doc... What if we generate them?CLI, SDK, Doc... What if we generate them?
CLI, SDK, Doc... What if we generate them?Scaleway
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHubNYC DevShop
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processChristopher Cundill
 
Eclipse Che : ParisJUG
Eclipse Che : ParisJUGEclipse Che : ParisJUG
Eclipse Che : ParisJUGFlorent BENOIT
 

Tendances (20)

K8s Cluster Build
K8s Cluster BuildK8s Cluster Build
K8s Cluster Build
 
Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011Project Betzn - LinuxTag 2011
Project Betzn - LinuxTag 2011
 
2012 Eclipse Android SDK
2012 Eclipse Android SDK2012 Eclipse Android SDK
2012 Eclipse Android SDK
 
Git flow workflow example
Git flow workflow exampleGit flow workflow example
Git flow workflow example
 
How to install android sdk
How to install android sdkHow to install android sdk
How to install android sdk
 
Trunk-Based Development
Trunk-Based DevelopmentTrunk-Based Development
Trunk-Based Development
 
Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Make
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and Docker
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for business
 
Golang Microservices meetup
Golang Microservices meetupGolang Microservices meetup
Golang Microservices meetup
 
A Journey to Improve Infrastructure Compliance With InSpec
A Journey to Improve Infrastructure Compliance With InSpecA Journey to Improve Infrastructure Compliance With InSpec
A Journey to Improve Infrastructure Compliance With InSpec
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
 
Git in Continuous Deployment
Git in Continuous DeploymentGit in Continuous Deployment
Git in Continuous Deployment
 
Android OS & SDK - Getting Started
Android OS & SDK - Getting StartedAndroid OS & SDK - Getting Started
Android OS & SDK - Getting Started
 
Flutter: Future of App Development
Flutter: Future of App DevelopmentFlutter: Future of App Development
Flutter: Future of App Development
 
CLI, SDK, Doc... What if we generate them?
CLI, SDK, Doc... What if we generate them?CLI, SDK, Doc... What if we generate them?
CLI, SDK, Doc... What if we generate them?
 
Gerrit Workshop
Gerrit WorkshopGerrit Workshop
Gerrit Workshop
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHub
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
Eclipse Che : ParisJUG
Eclipse Che : ParisJUGEclipse Che : ParisJUG
Eclipse Che : ParisJUG
 

Similaire à Nextcloud Android App Development Process Insights

Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...Amir Zmora
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERIndrajit Poddar
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshCodefresh
 
Moving microsoft .net applications one container at a time
 Moving microsoft .net applications one container at a time  Moving microsoft .net applications one container at a time
Moving microsoft .net applications one container at a time Amazon Web Services
 
Guidelines for Working with Contract Developers in Evergreen
Guidelines for Working with Contract Developers in EvergreenGuidelines for Working with Contract Developers in Evergreen
Guidelines for Working with Contract Developers in Evergreenloriayre
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelinesDevOps.com
 
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAmazon Web Services
 
Docker Global Hack Day #3
Docker Global Hack Day #3 Docker Global Hack Day #3
Docker Global Hack Day #3 Docker, Inc.
 
Being a Moby maintainer
Being a Moby maintainerBeing a Moby maintainer
Being a Moby maintainerAkihiro Suda
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfAswathRangaraj1
 
DockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubDockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubdotCloud
 
DockerCon14 Keynote
DockerCon14 KeynoteDockerCon14 Keynote
DockerCon14 KeynoteDocker, Inc.
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at ScaleOracle Developers
 
Webinar: From Development to Production with Docker and MongoDB
Webinar: From Development to Production with Docker and MongoDBWebinar: From Development to Production with Docker and MongoDB
Webinar: From Development to Production with Docker and MongoDBMongoDB
 
Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Luis Lopez
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osArnav Gupta
 

Similaire à Nextcloud Android App Development Process Insights (20)

Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
 
Moving microsoft .net applications one container at a time
 Moving microsoft .net applications one container at a time  Moving microsoft .net applications one container at a time
Moving microsoft .net applications one container at a time
 
Guidelines for Working with Contract Developers in Evergreen
Guidelines for Working with Contract Developers in EvergreenGuidelines for Working with Contract Developers in Evergreen
Guidelines for Working with Contract Developers in Evergreen
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
 
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Docker Global Hack Day #3
Docker Global Hack Day #3 Docker Global Hack Day #3
Docker Global Hack Day #3
 
Being a Moby maintainer
Being a Moby maintainerBeing a Moby maintainer
Being a Moby maintainer
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
 
DockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubDockerCon Keynote Ben Golub
DockerCon Keynote Ben Golub
 
DockerCon14 Keynote
DockerCon14 KeynoteDockerCon14 Keynote
DockerCon14 Keynote
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at Scale
 
Kivy report
Kivy reportKivy report
Kivy report
 
Webinar: From Development to Production with Docker and MongoDB
Webinar: From Development to Production with Docker and MongoDBWebinar: From Development to Production with Docker and MongoDB
Webinar: From Development to Production with Docker and MongoDB
 
Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 

Dernier

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Dernier (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Nextcloud Android App Development Process Insights

  • 1. Nextcloud Android App Development Process Insights Andy Scherzinger Spare-time Android Dev AndyScherzinger 14th Sept. 2016
  • 2. Nextcloud Android Client Overview • Forked in May 2016 • 4 Feature releases since then • ~200 new users per day • Maintained by two spare time devs • OSS – GPLv2 & AGPLv3 • Published on Play store and F-Droid
  • 3. Nextcloud Android Client Overview • Instant uplod for photo & video • Manual uploads • Multi account capability • Document provider (read-only) • File sharing incl. permissions • Minimal media player • Multi select with CAB • Quick actions via FAB • Respects metered wifi • Available in 32 languages
  • 4. Topics • General Development Model • From Idea to Release • Tools used in between • Release Channel
  • 5. General Development Model Collective Code Construction Contract - C4 vs. Gitflow vs. Github Flow
  • 6. General Development Model Collective Code Construction Contract - C4 • Use OSS share-alike licence • Use Git+Issue Tracker on a hosted platform and document your code style • Trunk-based development • Create issue, open PR, get it merged http://rfc.zeromq.org/spec:42/C4/ master
  • 8. General Development Model Github Flow • Create Branch • Add commits • Open PR • Discuss and review code • Deploy to production • Merge https://guides.github.com/introduction/flow/ master branch
  • 9. General Development Model Decission: custom Github Flow • Create Branch • Add commits • Open PR • Discuss and review code • Merge • Deploy to designated release channel https://guides.github.com/introduction/flow/ master branch
  • 10. From Idea to Release 1. Open issues for discussion 2. Positive decision on issue 3. Implementation + PR creation 4. Code Review & Fixes 5. Release to designated channel approved 1. to develop 2. developing 3. to review 4. to release
  • 11. Tools used in between Development • Github for – dvcs – issue tracking – to enforce peer reviews • Travis for – unit testing (active) – integration testing (deactivated atm) – Quality metrics / coverage (tbd) Octocat by GitHub, Inc. | Travis CI mascot by Travis CI, GmbH
  • 12. Tools used in between Development • Transifex for – translations – Pushed to github repo via Jenkins job • Jenkins for – Pushing translations to the code repo Transifex by https://www.transifex.com | Jenkins mascot by https://jenkins.io
  • 13. Tools used in between Communication • Quassel (irc) for – Short living instant discussion – Quassel saves the irc history (server) • Discourse for – Community forum (feedback/discussion) – Beta/RC announcements Quassel logo by http://quassel-irc.org | Discourse logo by Civilized Discourse Construction Kit, Inc.
  • 14. Release channels Beta releases Feature beta1 beta2 beta3 beta4 beta5 Release feature branch to review to release
  • 15. Release channels From rc to stable 1.2.0 1.3.01.2.0 RC1 1.2.0 RC2 1.3.0 RC1 Feature Release ~2 weeks ~2 weeks
  • 16. Release channels From beta to stable 1.2.0 1.3.01.2.0 RC1 1.2.0 RC2 1.3.0 RC1 Feature beta1 beta2 beta3 beta4 beta5 Release
  • 17. Release channels From beta to stable - Summary • Labeled „3. to review“ gets merged to beta • Beta branch gets released as required • Beta app installed in parallel to stable/RC • Release Candidate needs to survive in the wild for two weeks – then stable gets released • Using semantic versioning Semantic verisoning: http://semver.org/
  • 18. Nextcloud Android App Development Insight- Summary • Provide an easy entrance • As little process as possible • As much process as necessary • Document your process • Utilize release channels for community power • Collaborate, plan and discuss in the open easy, open & transparent
  • 19. Some links For your after work browsing • Development / Git Processes – http://rfc.zeromq.org/spec:42/C4/ – http://nvie.com/posts/a-successful-git-branching-model/ – https://guides.github.com/introduction/flow/ • Nextcloud Android App Process & Links – https://github.com/nextcloud/android/blob/master/CONTRIBUTING.md – https://www.transifex.com/nextcloud/nextcloud/android/ – https://webchat.freenode.net/?channels=nextcloud-mobile – https://travis-ci.org/nextcloud/android/builds/ • Used Tools – https://www.transifex.com – https://travis-ci.org – http://semver.org – https://jenkins.io – https://lgtm.co – http://www.discourse.org – http://quassel-irc.org