One Kindle development story

In this article, I want to share my development experience for the Kindle 3 (now the Kindle Keyboard). This article does not contain any criticism of Amazon, its team, services, or the materials provided to me as part of the program (in this regard, I am bound by the agreement of the beta program participant).

A bit of history


This winter, I bought a Kindle 3g. I liked the device - it had great potential. Memory, wi-fi, 3g, Linux, microphone (not involved). I then thought - if the screen response time was lower, then the reader could well be used as a replacement for a tablet or phone. In the end, many here half a life watched black and white TV, and it was enough.
After a couple of days of use, I wanted a larger Russian keyboard and a normal player. The Internet said that all this can be put, but you need a jailbreak. By that time, I had already read the news about the removal of books by Amazon, and was scared (in vain) that Amazon could cover up access to free 3g, or even send a command for self-destruction to my Kindle (joke). By this time, I had been studying English for half a year with a tutor who showed me the excellent Anki program . I really wanted her port to be on the Kindle. In addition, I started taking free Java courses at Softserve IT Academy. All this resulted in the fact that for my final project at the academy, I decided to write an Anki analog for the Kindle.

KDK Beta Test


I knew that Amazon had begun a closed beta test of the Kindle SDK (KDK). Thinking "what the hell is not joking," I sent a request to participate in the program.
Here I took the risk - if I didn’t get a place in the program, I would have to write the application “by touch” using the SDK extracted by the craftsmen from the Kindle itself, without full help and javadoc. As I understood later, I would not be able to do this.
Correspondence with the manager from Amazon lasted about a month, he asked for a description of the application (in Amazon terminology - active title, or Kindlet), sketches and release schedules for each functionality. I sent all this to him, they accepted me into the program. I was delighted and started coding.

A little about the application itself


The application was created to help users learn any facts presented in the form of question-answer cards. Card-based learning works like this: you see a card with a question, remember the answer, and then look at this answer on the other side of the card. After that, you can evaluate your knowledge (good, average, bad, I don’t know) and this assessment will affect the time the card is next shown. There are several examples of decks with cards in the application, but it is assumed that the user will create decks himself, add cards to them and learn them. The interface languages ​​are Russian, English and German. Layouts with symbols of German, Spanish, Russian and Ukrainian languages ​​are supported. There is built-in help.
KDK, Kindle Iron, and Amazon's policies have placed some restrictions on the application. They had to be circumvented, moving away from full compatibility with Anki. It was not possible to make file compatibility (only one-sided export of decks from Anki in the form of tab-separated txt is possible) and synchronization with decks on the server. The hack of the physical Russian keyboard did not work in Kindlets; I had to write my layouts for alternative languages. The application was tested only on kindle 3 / 3g (keyboard) and kindle DX (the latter - only in the simulator).

Attempts to contact


After about 3 months, I finished the development, made an graduation presentation at the academy and informed the manager that everything was ready. He asked me to submit the application for review and testing. I sent, and began to look forward to an answer. From this moment 4 months have passed. I haven’t received any feedback. After about a month, I began to unobtrusively remind myself. I wrote to the manager, wrote using the support form, wrote on the internal forum of developers. The answer came 3 months later with a request to arrange a meeting on Skype. I was glad again, and we agreed on a time. This is strange, but we could not find each other on Skype - he did not see me, and I saw him only as a contact offline. After two attempts to contact via Skype, the manager asked me to find some conference number in the EU or the USA. I scratched my head, but was able to solve this problem, sending the conference number to the manager, and, at the same time, your mobile number (you can cheaply call him from Skype). From that moment, letters began to return to me as undelivered.
I again wrote on the developers forum, where a guy answered me, the same participant in the program, like me, but more successful. He said that he has no communication problems, and his applications post without problems on Amazon Market, bringing a small, but still profit. He gave me the contacts of another manager, who, however, also did not answer me. Then I thought “enough”.

Stop it


The idea that an application that can be useful to many is not used at all, can drive any developer crazy, even an amateur like me. It was decided to put my Kindlet in the public domain, which I did. Unfortunately, installation requires a jailbreak and an additional hack that installs developer keys on the Kindle. The installation process for all this has long been described by one good person who writes other useful applications for the Kindle. A link to the instructions is in the Download section of the site, which I launched to support my application.

In custody


I want to express my deep gratitude to the KDK developers, I really enjoyed working with him. I'm far from a mobile development guru, but compared to other development environments (Android SDK, xCode), KDK is pretty friendly. It's my personal opinion.
I also want to express my gratitude to Softserve IT Academy, in which I learned a lot, and which allowed me to stir my brain after several years of obsession with web development.
I am also grateful to my wife who completed the translation for the German interface.
And finally - thanks to everyone who develops Anki.
Sorry if it looks very pathetic, like an epigraph to a thick book. I'm already finishing.

Summary


It’s quite possible to get into the KDK beta testing program if there is a project of a useful application (or game). Making money by developing for the Kindle is also quite realistic, such people exist. You can write an application in Java without knowing it at the beginning of the project, you just need to.

Also popular now: