It's possible to reduce the size further, one of our devs has recently been experimenting about this in particular and I think has got down to 4MB without too much difficulty. The problem is that reducing it much further starts to mean being more careful about blacklisting stuff like modules in the python standard library, which can be hard to do automatically without breaking dependencies. It's highligted some potential optimisations in kivy's internals though, so maybe we can make it easier to leave out some non-essential kivy components.
Just to be clear about the build time thing, compiling python + project dependencies may take a few minutes (e.g. your 15 minute figure), but subsequent builds don't need to repeat this and will take just a few seconds.
As long as you blacklist unneeded libraries on Kivy, you can get the size down to 5 - 10 MB. I personally don't believe this download size is such a problem for users (many native Java apps are upwards of 5 MB).
What is a problem is the start-up time and battery usage, both much harder problems to address. Because they require the Python interpreter, Kivy apps take significantly longer to start-up, and use significantly more battery power than Java apps. I have some hope that Micropython may eventually offer a solution to this for Python on Android, although porting Kivy to Micropython will be a major task.
For battery usage, i'd love to see data for this, i think drain will come from the amount of action you put in your interface, as well as background processing you'll do, kivy itself, being opengl and cautious about what to update when changes happen, shouldn't add a lot of overhead on this.
I don't think porting to micropython is considered an option, usually, when we want more efficient code, the solution is to do less python, more C, we have a nice integration with Cython, and don't hesitate to go with it as soon as needed.
That being said, Kivy is really nice to work with; the documentation is good and it's a well thought-out library. I'd enjoy using it for future apps that don't happen to have long views to scroll through.
Building a good community around open-source projects holds obvious advantages as you'd always need contributors to push the project through its future generations.
As far as I can see, Kivy is supported by a group of independent developers. Kivy (as a group) must have spent money in marketing the product, launching developer contests, publishing books on Kivy (I've seen a couple books on Kivy by O'reilly), and other stuff. I'm just curious to know in what other ways, apart from the need to grow the community around your project, does marketing your open-source project help? And is the money put into marketing the project contributed by the creators themselves?
I don't think kivy (as a group) does anything except recently the contest, and things like maintaining a g+ account, mailing list, posting on hn or reddit if something intersting happens etc. - were you thinking of anything in particular here?
> launching developer contests
This was funded entirely from sponsorship, you can see the list on the contest page (http://kivy.org/#contest).
> publishing books on Kivy (I've seen a couple books on Kivy by O'reilly)
Publishers commission books because they think they will make money, not because kivy pays them to - actually, I don't think any of the core developer team have been directly involved in kivy books.
> and other stuff
Honestly, not really - I can't think of any other expenses except small things like powering the website server.
> I've always been confused about open-source projects that go big on marketing themselves.
I don't think kivy is really big on marketing itself - if anything, maybe the opposite. I've wondered before if its relatively unknown status (compared to phonegap etc) is at least partly because we don't advertise much, though it may just as well be that more people are interested in html.
Things like the developer contest are great to build interest and get the word out that kivy exists, and as you said yourself have obvious advantages in maintaining and growing the community - if this is 'going big' on marketing, I don't think that term is very meaningful.
For books, while we were contacted by a few publishers, none of the core-dev authored any, yet. We tried to give a hand, however, reviewing the books when we could, i personnaly reviewed O'Reilly's book, pointing out a few mistakes to the editor, and gave it a good review, as it was, in my opinion, a well written book with very good exemples and explanations. As it seems usual, i got a free book and a little payment for this (that i didn't expect at all when doing it, my motivation was that there was a need for good kivy books).
And i agree we should do more, if not on marketing, at least on communication (there are a few markets that kivy can fully or partially cover already, we don't want to limit these options, just help it grow where users want to use it), but users need to know about it, and to easily get a good understanding of what's possible to do with it. We have a lot of recurring questions about that, as well as people discovering us and asking why they didn't heard about us sooner.
I do think the community could be way bigger, but we need to adapt the tools we use to communicate, irc works very well up to the hundred of connected users we have, probably less at more, and waste a lot of energy in saying the same things over and over again (although the direct interaction with our users is highly appreciable), SO seems to make reuse of explanations much more common, and is sometime more effective than direct documentation.
Anyway, i'm getting away from the point, will cut it there. :)
... and, maybe a "community" link on the kivy page, to quickly find out how to get in touch with others in the community. Would help a lot I think.
Another example app with Kivy + SQLite: Image Viewer and Organizer, https://github.com/gau-veldt/ImageOrg
This is also interesting: http://libnui.github.io/nui3/
I'm not exactly sure anymore about the relation. Is Kivy based on libnui?
If you want to see apps built with NUI I just released reChord: http://bit.ly/rechord
And also some very nice music apps with NUI:
"Open source software library for creating NUI applications, running on Windows, Linux, MacOSX, Android and iOS"
I guess that is why I searched for NUI and I probably found your lib. I don't remember that I have heard that term "NUI" before.
I see a few files, but no instructions. Isn't kivy supposed to be a GUI building tool?
Where is the exe or dmg file?
I appreciated being able to develop on my Mac, run it on the table using Windows, and even got it running on an iPad.
Getting the environment set up to deploy to iOS was complex (especially cross compiling non-standard Python libraries), but it has been a few years.
I may try this on my daughter who has been asking to get into programming. I remember the buzz I got building simple visual apps in VB. This feels similar.
This bootstrap is invisible to the user, you don't need to touch the java to use kivy. That said, kivy has some cool sister projects for using the normal java api - pyjnius for accessing java classes directly from python, and more recently plyer to provide a more pythonic wrapper to common things like vibration, sensors etc.
(The above is also mostly the same for the ios build process).
> Is it better than PhoneGap etc and closer to native apps?
I would say more that it is just different, with advantages and disadvantages of its own. It doesn't use native widgets (though it's possible to create and use them in some ways with pyjnius), so it isn't different in this sense.
But it looks great.