← Back to overview

Android Application Status

The Short Update

The Freedcamp team and I would like to thank you for your patience regarding the release of the new Android application. We have been working extremely diligently in order to provide you with a high quality application, one that supports all of your organizational needs. Unfortunately, during the process we experienced some unforeseen difficulties with overseas developers, who produced low quality code that did not live up to the kind of work we at Freedcamp strive to put out. Due to this, the release has been delayed and we expect to have it fully up and running by September 18th.

I would also like to apologize on behalf of Freedcamp, to all of our amazing users who have supported us through this journey. We are working day and night to get this application into your hands and can’t wait to hear what you think.

If you are interested in helping us test out the Alpha/Beta versions, please add a comment in this article.

The Longer Detailed Explanation

Current state of hiring engineers

We live in a very interesting time for the world of software development. There are countless jobs available every single day, the demand is astonishing. This demand has caused a lot of people to pursue a career in engineering. From the standpoint of a company who needs to hire a software developer or software development firm things have become very complicated.

  • To find a permanent software engineer it requires many interviews with under qualified people who lied on their resume, and the ones who move onto a trial phase often over promise and under deliver
    • A common occurrence is engineers who either lack experience or the drive to write quality code
    • Most engineers have a “it’s good enough” mentality, providing code with many bugs and flaws, and when faced with feedback on their code they become upset and potentially quit
    • Simple concepts like adding comments in your code, testing your code to make sure common use-cases work, providing error handling in case something does not work, and more are thing of the past it seems
    • After vetting large numbers of engineers, and paying a lot of money in the process, you get lucky to find one good engineer
  • Hiring a software development firm to handle something like building an iOS application saves you the headache of finding the talent yourself, however it appears most of these firms are not responsive in handling issues or making sure their engineers code is of high quality
  • Even after you hire someone who seemed to be of higher caliber, you have to micromanage their code because eventually they get lazy and without realizing it you end up with poor code which is not production ready

Details of what we’ve faced so far

So here is what has happened with our iOS and Android applications so far:

  1. We hired a development firm who promised to deliver an iOS application for a given $ price
  2. They built something which appeared to work like designed
  3. After simple testing many bugs were revealed, and additional $ was required to resolve those
  4. Once we launched the application live it turned out it was built to work on a single thread… or in layman terms it could not handle a simple task list with more than 100 tasks because the UI would just stop responding
  5. We hired an engineer to rewrite this, he made some improvements, then promised he has almost entirely rebuilt the way tasks are fetched from the server and will work flawlessly, after paying him a large sum of $ he literally disappeared without a trace with no new code
  6. So we’re left with a decent application, that works great unless you manage large quantities of items

On the Android side

We did some research and decided to use React Native as a way to build the Android app and eventually also release a new iOS app. It was a great decision, however finding a React Native engineer turned out to be a very difficult task.

  1. We hired an engineer who had good experience to build the application
  2. He released a final version to us which had a lot of bugs, and some major UX flaws
  3. After we asked him to fix the issues he stated he is moving onto another company to work on their product
  4. We hired a new person who helped resolve these issues, however with each new version that fixed old issues he introduced new issues
  5. Even though everything worked, almost everything in the system took considerable time, for example adding a Task could take up to 15 seconds, editing a task as well, loading 400 tasks could either crash your phone or take 45 seconds
  6. It was time to get involved and understand what is happening, so we took some time and started learning React Native ourselves and dug into the code
    1. We realized that a simple page, like showing the tasks for a given project, involved 900 lines of code, 12 different methods, and 7 files
    2. It also fetched all 500 tasks and rendered them on the screen… instead of just loading 100 and only loading more as you scroll down the page
    3. In 14 hours of coding we managed to reduce the lines of code to 500 (from 900) and the number of files used to 3, we believed it may be salvageable to do this with the remainder of the system
    4. Unfortunately as we got deeper we found way too much technical debt which would require significant time to resolve (maybe 3 weeks), and that it was built in a way that launching iOS would require even more work (2 weeks)
    5. We were left with only one option, after 6 months of development by two React Native engineers, we would have to rewrite the entire application in React Native from scratch in a week to be able to release by September

Current status

  • After spending the first week building the new application and learning React Native, it was like a mini hackathon because we spend 3 days out of the week working 24-26hours straight totaling almost 110 hours in 1 week
  • Found out that React Native is very new technology and documentation and examples are very limited, if you are building a simple app it’s effortless, but when you get into a system like ours with Groups -> Projects -> Task Lists -> Tasks -> Comments it becomes extremely difficult to find any help ( we will be releasing a lot of the things we learned and the code examples to help future builders )
  • Learned the hard way that upgrading react once you’ve built a large portion of your application takes one 12 hour day, and it’s inevitable as you need the speed improvements the newer versions provide
  • After 2 weeks of development and about 200 hours we have a great Alpha version which
    • works on iOS and Android
    • is lightening fast no matter the number of tasks or what action you are taking
    • has no technical debt so adding new features that you will require in the future will be rather straight forward and allow us to release updates often
    • uses latest react and cutting edge technologies to make the speed lightning fast
  • We are hoping by the end of this week to have a beta and an official release in both App Stores by the end of next week September 16th, our goal is to release on September 18th

Start your next project in two minutes

Freedcamp is free for unlimited projects, tasks and users. No credit card, no trial clock.

Comments

21

  1. Andrew G Bullen September 7, 2017

    Don’t feel bad. You aren’t the first person to come to these realisations and you won’t be the last, but the fact that you have speaks volumes for your company. It’s a shame that you had to code it yourself, but sometimes it’s necessary.

    The future will become easier – but my advice is to try and higher developers who are even better than you. As your company grows you should be managing the company and the developers not writing code. Easy to say but hard to do.

  2. would be really nice to help in the android beta test. Count me in!

  3. Greetings Freedcampers 😉 I have been using your application for a long time and I love it. I have enough experience testing applications as a user and it would be a pleasure to be able to collaborate by testing beta for android. Thank you for all your efforts and support.

  4. Stephen T September 8, 2017

    I’d love to be a part of trailing you beta version. When do we start?

  5. Phew! Sorry to hear of that experience. Glad you got things going and went with a framework like React Native.

  6. Andrew G Bullen September 11, 2017

    By the way I would be really interested in helping to test the Beta app.

  7. Sounds like a familiar story, would like to help beta test the Android App

  8. Hello there. Im waiting for your app! Please send me invitation if you need any beta tester

  9. keep on fighting!

  10. Karthikeyan September 14, 2017

    Hi, I am looking for a project management app.. and came to know about this after some time . Would like to test and provide feedbacks.. started managing few projects, me and my team looking for the perfect tool to improve our productivity.

  11. Thanks for the update. Sounds like a learning experience, in every sense of the term.

    At least from our point of view as users, it’s a big bonus to know that you your selves are now at the helm of the codebase for the APPs.

    Keep it up guys – we’re are eagerly anticipating the release, but now also understand the process it has been.

    Thanks, T.

  12. Great product! Excited to see the Android app! I am interested in testing the beta version.

  13. Hey Freedcampers
    I love your product and all the services it provide.
    I’d like to be a tester for your Android app.
    Cheers

  14. Mikey Harper September 19, 2017

    Please add me to the beta.

    Looking forward to this app being released and already a massive fan of Freedcamp.

  15. would be really nice to help in the android beta test

  16. Lee Rutter September 21, 2017

    I began using freedcamp 9/20/17 after trying to work with many different platforms and was blessed to be able to work with the web version first and began to get everything sorted out. I wish for your success in this endeavor and it appears you finally got things a bit under control, but had to reach many milestones and I can imagine how you put your own software through its paces to mange these projects! You evidently are on top of your game and looking out for us to ensure we have a good experience using your apps, and we certainly appreciate that. Your sharing and openness helps the community in so many ways and I am grateful to have found your software.

  17. I would like to help. Please count me in.

  18. Mihai Dan Botoca October 2, 2017

    Thank you for all that you are doing. I would love to test the Android app, as I am anxious to have the final release to be shared with my team.

  19. Would be please to Beta test the app!
    (I am a kickstarter backer)