Port an existing iOS ObjectiveC app to Xamarin to support Android, iOS (and Windows if the extra effort is minimal). Port has one custom home screen with UITableViews throughout the app.
Follow on phases and projects exist and shall be awarded to the freelancer based on the successes of each phase.
We are a small company with a proven stream of revenue over the last 20 years. In addition to running a successful business, we have over 50 years of combined experience as developers in the IT industry using a wide variety of technologies. In short, we understand what it takes to be a good developer and understand what said developer goes through day to day.
While we have not worked with Upworks in the past, we have years of success outsourcing several large projects through several other avenues.
- Desire to produce good code and learn new things.
- Must have delivered an Android and iOS app using Xamarin. Windows app a plus.
- Freelancer must have excellent verbal and written English and needs to be available for several short (15-20 minute) touch base audio and/or screen sharing meetings as needed during 7:30-9:00a EST time slot. We do not expect many over all meetings.
- Must be available during the month of October 2016 for emergency support on defects.
- Freelancer must show examples of high quality code that reflect knowledge of the prerequisite skills.
iOS (including the ability to interpret ObjectiveC and iOS api)
MVVM architecture pattern
Parse Xamarin SDK
Further Required Skills (to complete the project):
MoPub ad serving (animating in ads asynchronously as they become available)
Flurry analytics collection
Xamarin testing (functional and unit)
Nice to Have Skills (which may be used later on/others on the team have):
Technologies not used at this time but nice to have as they may be required for future efforts:
In App purchases
Groovy port to .Net using Parse SDK
VMWare or Parallels
No later than July 14, 2016.
Freelancer Selection Process
- If interested, Freelancer will provide a portfolio with:
--- Example source code
- Selected Freelancers shall provide a NON-BINDING +/- 100% sizing estimate for each phase of the project.
- Based on non-binding estimates, Client will select applicants to interview.
- After a successful interview, selected applicants will sign an NDA.
- Client will provide the Freelancer access to the iOS source code.
- Based on the source code the Freelancer will provide a binding bid for each phase along with any details that could be helpful in understanding how the Freelancer will implement the port.
- If needed there may be second interview to review the bid and proposed implementation of the port.
- Client will select a Freelancer.
Scope of Effort
Current iOS implementation has:
-Around 10 View Controllers - (All but the home page and a WebView screen are UI UITableView driven screens).
- View controllers average 250 lines of code.
- All but the home page is a UITableView or UIWebView. All but one UITableView will port to a Xamarin ListView.
- Around 15 View Models
- Around 10 parse tables (heavily denormalized to simplify client side logic so there is only one or zero queries per screen)
- Around 3 Custom Views
- There will be several small changes from the original code but most of these are code simplifications or minor enhancements resulting in less over code than the original code base.
- In addition to the full functionality port, we require limited test coverage (NOT percentage based, we believe in value driven automated test coverage not religious automated test coverage). That mean ViewModel tested for non-trivial edge cases of ViewLogic accessing already existing Parse Server data (this will simplify test data creation efforts). We don’t expect unit tests of trivial getter and setter methods!
- Unit testing for those ViewModel edge cases not covered by the existing Parse Data.
- One or more PageObjects created for each screen.
- Basic flow functional tests mostly designed to verify view bindings and basic navigation.
Full source code will be provided during the freelancer selection process. These shall be considered the specifications to the cross platform ports.
That said, some helpful aids understanding the code base (including screen shots) are in the attached document.
All the screens are shown here along with references to its single Parse table used to source the screens are located here:
Minimum OS’s with all popular devices sizes.