4 ms·
A small example for myself, when I started programming for Android I looked for popular open source Java libraries I could use in an Android app. One was Jackc
by Ologn 12y ago
A small example for myself, when I started programming for Android I looked for popular open source Java libraries I could use in an Android app. One was Jackcess - an LGPL licensed library which handles Microsoft Access files. So I ported it to Android, put a small UI on it and released it ( https://play.google.com/store/apps/details?id=com.panaceasupplies.android.panaceadb https://play.google.com/store/apps/details?id=com.panaceasup... ). People responded, so I updated the UI and logic, mostly due to suggestions. Right now it makes about $70 a month from ad clicks for me.
So while testing things out I tried some Microsoft Access 2010 files with "Attachment" data types. Crash! Jackcess couldn't handle tables with that data type. It wouldn't just kill that data type but the whole table. So I looked at the source code, wrote a kludge that got around the problem, and sent the patch in ( http://sourceforge.net/p/jackcess/patches/15 http://sourceforge.net/p/jackcess/patches/15 ). The maintainer looked at the patch, and then rewrote the code so that it could handle not just attachments but other data types.
So I make money from the app I build with their code. The upstream gets patches for problems I find.
I've been Android focused lately and have sent a lot of Android port patches out (or just general fixes for bugs I found while doing a port). The latest version of Xscreensaver has some of my alpha Android port code in there.
It's a good dynamic for cooperation - the upstream cares about their code, which is usually cross-platform. I care about Android and using their code on Android. The Google Play users just want to use the app generally. Everyone winds up happy.