📜 ⬆️ ⬇️

Interval reps "in the pocket"


An article about a program (iOS) for memorizing English words using the interval repetition method, which takes into account your daily routine.

At habrahabr several times already covered the question of the method of interval repetitions for memorizing information: habrahabr.ru/post/246459 , habrahabr.ru/post/196448 , habrahabr.ru/post/240451 . In short, interval repetitions are an approach to storing information, which consists in repeating the material under study at certain constantly increasing time intervals (for example, after 5 minutes, then after 25 minutes, then after 2 hours, etc.).

How did you get the idea to create an application


About a year ago I decided to apply this technique (interval repetitions) to memorizing English words, since reading documentation, articles in English often feel the lack of vocabulary. First I started looking for completely ready solutions. I needed a program for a mobile phone, because he is always with me and I can repeat the words at any time. My search was not successful. Programs that I found either required the creation of a database with words on their own, were too costly (Anki), or had, in my opinion, insufficient functionality in terms of implementing repetitions.
')
Not finding the finished program, it was decided to write my own, which will fully meet my requirements:


And I began to write the cherished program. There was already a little programming experience under iOS, so there was no oscillation with the choice of the target platform. The development of the program took 8 months, mostly in the evenings after work. And now I'm finally ready to share the results with you.

Distinctive features of the application


The main difference between my program and its analogs is keeping track of your daily routine. You can indicate to the program the time intervals when you cannot study words: sleep, lunch at work, playing sports, etc. At specified intervals, the program will not disturb you with a reminder to repeat the words. Moreover, based on the time limits, the time will be calculated when you can learn new words. This feature is best illustrated by the following example. Suppose you set a time limit for sleep: 23: 00-06: 30 for each day of the week. Suppose also that the repetition intervals are: 30 minutes, 2 hours ... You start learning a new word at 22:59, the time of the first repetition comes at 23:29, the second at 01:29. At this time you will most likely fall asleep, the repetition will be considered overdue. To prevent such a situation, the program limits the time for learning new words (words can be repeated at any time). For the above example, the program will prohibit learning new words after 20:30.
image


The program offers a choice of several different methods of interval repetitions: according to Pemsler, Ebbinghaus, and others. I do not dare to judge which of them is the most effective, but by default I chose the Peamsler method, since he used interval repetitions as applied to the study of foreign languages.


Interaction with the program is quite simple: you see the word, its transcription and translation. Each word can be voiced (I use the speech synthesizer built into iOS, which significantly reduced the size of the application). When you study a new word, two actions are available to you: either you will repeat this word in the future, or you already know it (you will not repeat it).


In the case when you repeat a previously learned word, you tell the program whether you remember it or not. In accordance with this information, the program will decide on the next repetition time.


For car owners there is a special mode. Just put the phone under the windshield of the car and turn on the projection mode (HUD): the words will be visible in front of you on the windshield - you can see both the road and the words.


When the time comes to repeat the word, the program will notify you about it (local notifications are created):




Third Party Products


To track down the crashes of the application, I built Crashlytics (registration on the site takes several weeks, the service is free). Also, this service allows you to organize beta-testing applications. Everything is implemented extremely convenient. For myself, I created a small cheat sheet for adding a device to the list for AD HOC distribution:
  1. Get udid devices
  2. Go to developer.apple.com to the section Certificates, Identifiers & Profiles -> Devices -> All
  3. Click on +
  4. Enter the Name (any, the main thing to make it clear what this device is and to whom it belongs) and UDID, click Continue
  5. Click Register
  6. Go to Provisioning Profiles -> Distribution
  7. Select the profile that is used to distribute AD HOC -> click Edit
  8. In the Devices section: put the checkbox in front of the newly added device
  9. Click Generate
  10. You can download the profile to your computer (OPTIONAL), click Done.
  11. Go to Xcode
  12. Xcode -> Preferences -> Accounts -> Select the desired id -> Double click on Name


In addition to Crashlytics, this January I began to use the TestFlight service for beta testing. Its undoubted plus in the number of testers: 1000 external testers and no need to collect udid devices (respectively, when adding a new tester you do not need to recompile the application). Here is a good article on how to use this service: iOS 8: Beta Testing with TestFlight

For the collection of statistics used Flurry (free service). At the moment I'm interested in the effectiveness of each method of interval repetitions, I will try to evaluate it in relation to the number of clicks on the buttons “I remember”, “I do not remember”.

To record emerging ideas for improving the application, help texts, TODO list, I used the Google Docs service: from a mobile phone — in order to not lose the thought, on the computer in the evenings — just convenient.

Icon


On the icon, I wanted to show that memory “mechanisms” are used to memorize words - I found an idea that was good for me - a human head with a gear instead of a brain (it is convenient to look for icons on IconFinder ). The background of the standard icons for language learning applications is two flags: English and Russian.

In the Xcode project, the application created three goals: alpha (compiled directly to the device), beta (not compiled to the device, the application is assembled through product -> archive and then distributed through the Crashlytics beta testing service) and the final version for the store (largely repeats beta version, also used for beta testing via the TestFlight service). Accordingly, all three versions of the application can be installed on the device at once:


So that these versions can be easily distinguished from each other, Alfa and Beta masks for icons were created (I share them with you).

Bugs


The version control system of Xcode does not accept the path in Russian with the letter “d”. Solution: replace “d” with “and” in folder names. After that, files are successfully added to the version control system.

Instead of output


If you have not just an idea, but a solution to any of your problems, and this solution is more convenient for you personally than the ones already created - perhaps your product has a chance of success. I hope that my application will be useful for someone.

Promo codes


Promo codes for the “Repeat and memorize English words with SpacedRepetitionApp” application :
964H7HWJJKET
NL3MNNMJR3EJ
KFJPKT3NPFXY
EXJEAWL44XXJ
KTLAEF3363N3
EHPKEERT44FT
WYPKF7EE7PXW
T9JPPXYY4YWR
64T6HXLKFNHR
KMYKP7RNATYP
F4XJLT77PM9E
43T3HAXTN7L3
7KW6FWT3FJTN
PAFKMYM3XL4A
LTPWYNNE64EY
PAPM3PNTM3HW
4ATX4F6ELHA7
EAJFK39XJHTM
3PKJYLHRX7HN
6J977N49PKR6

UPD - April 24, 2015
Additional promotional codes:
tokn.co/an9hn2gh
tokn.co/wjvd8hs6
tokn.co/jsb5tpct
tokn.co/m2u9zcyc
tokn.co/sq2yf7xa
tokn.co/tmfk3hqj
tokn.co/vr539bu7
tokn.co/g3ea6fwy
tokn.co/zxd8c42k
tokn.co/24mes3zp
tokn.co/hphcgcmv
tokn.co/bza65b99
tokn.co/fgngkh32
tokn.co/y63zq2dw
tokn.co/9fzb238x

Source: https://habr.com/ru/post/250031/


All Articles