Building software for cattle farmers. Part 4. Version 1 completed
Tags: mobile, android, kotlin, tristan
Published: 2023-03-13 16:58:30

### Introduction
- In this series I take you along, week by week as I release my app and update you on all of the challenges I have faced from the previous week.
- The app I have built is an app that allows cattle farmers to track their calves during calving season

### My app on the Google play store
-[HERE](https://play.google.com/store/apps/details?id=com.elliottsoftware.calftracker)

###GitHub code
- [HERE](https://github.com/thePlebDev/CalfTracker)

### YouTube version
- [HERE](https://www.youtube.com/watch?v=DE5Augn23_M)

### Table of contents
1. [Version one completed](#one)
2. [The problem with swipe to delete](#problem)
3. [The competition](#competition)
2. [What is next?](#next)



### Version one completed <a name="one"></a>
- Now I can officially say I have created and shipped version 1 of my Android app which can be found [HERE](https://play.google.com/store/apps/details?id=com.elliottsoftware.calftracker). Well technically speaking, it is version 13 but this 13th version is what I am going to call version 1.0. The two new features I added to this version where:

**1) Swipe to delete functionality with a confirm to delete**
**2) Added vaccination functionality:**

- With this added functionality I have successfully addressed most of the major issues 


### The problem with swipe to delete <a name="problem"></a>
- If you Google how to implement swipe to delete, you will find a bunch of tutorials that will show you how to implement a basic swipe to delete functionality. However, what they don't tell you is how awful swipe to delete is in real world applications. If your user does any sort of prolonged scrolling, there is a chance that their screen will register their intended scroll event as a swipe event. If you have a traditional swipe to delete implemented, this means your user just deleted something that they didn't intend to. This is a awful experience for your users. Now you could implement a undo button but I think the real solution is to force the user to confirm what they are deleting. Like what I have implemented.


### The competition <a name="competition"></a>
- Software created for farmers to track calves is nothing new. You can even find a list of all the recommended solutions, [HERE](https://www.the-next-tech.com/mobile-apps/cattle-record-keeping-app-website/). So why do I think I can stand out? Well, a lot of these apps are tailored to large commercial farming operations(big data applications are all the rage in farming tech right now) and  most are desktop solutions. Even fewer software solutions actually target both the Android and IOS(I plan on building a IOS version) markets. Also, I have the added bonus of both my brother(IOS user) and father(Android user) being cattle farmers. Meaning I get instant user feedback. If they want to add a feature or if there are any bugs, they literally just call me and we talk about a solution. So to reiteration I think I carve out a niche for these 3 reasons

**1) My app is targeted to smaller not commercial farmers**
**2) My app will be on both Android and IOS**
**3) Super users(my dad and brother) giving rapid feedback**


### What is next? <a name="next"></a>
- Well first and foremost I am implementing a subscription plan into my app(got to pay those server bills somehow). I am actually creating a blog post series on how to integrate a subscription into your Android app, which can be found, [HERE](https://dev.to/theplebdev/adding-subscriptions-to-your-android-app-part-1-the-ui-2c4b)
- Second, I want to implement all the tests I can. Now that I have a application that works, I want the code to prove it.
- Open source, starting next week I am going to get involved with more open source projects. I want to get some real world developer experience and experience coding with a large group 
- lastly(probably about 2 weeks away) I want to start creating a IOS application.

###Conclusion
- Thank you for taking the time out of your day to read this blog post of mine. If you have any questions or concerns please comment below or reach out to me on [Twitter](https://twitter.com/AndroidTristan).