Grading Home projects will heave 2 deadlines - Inital and Final. Initial - grading starts, you will get feedback and can fix your stuff till Final deadline. If you miss any of the Final deadlines - one extra bigger project in IOS and Android at the end of semester! All HW's are mandatory! =================================== Homework 01 =================================== Initial Deadline 2019-03-13 23:59 - grading starts Final Deadline 2019-03-18 23:59 Grant developer access to "Andres.Kaver" and "kejans" Description 15 Puzzle - https://en.wikipedia.org/wiki/15_puzzle Single player game, using buttons. No movement of buttons, just replace text. Nice UI, rotation (portrait and landscape), everything based on styles and values. Different button states (pressed etc) UI Scaling - test on tablet also. Timer, score, etc Save states - on rotation and on stop Game logic in separate class! =================================== Homework 02 =================================== Initial Deadline 2019-03-13 23:59 - grading starts Final Deadline 2019-03-18 23:59 Grant developer access to "Andres.Kaver" and "kejans" Description Radio app Plays music (from service), displays on mainactivity current song title and artist. Allows switching between radiostations Based on Sky stations: http://sky.babahhcdn.com - streaming endpoints Json info about current tack http://dad.akaver.com http://dad.akaver.com/api/SongTitles/SP Save song info into DB as they are playing (station, artist, title) Present statistical overview (in separate activity)! Allow viewing statistic per radio station a) how many different artists have been played b) how many unique song each artist has had in playlist c) count per every artist song d) allow selecting time from-to (default last24h) Radio: SKY PLUS From: Now()-24h To: Now() |UPDATE| Total unique artists: 45 Total unique songs: 57 List of artists/songs Redneck 37 Cotton eye joe 36 Hello World 1 =================================== Homework 03 =================================== Deadline 01 - 2019-05-02 23:59 Grant developer access to "Andres.Kaver" and "kejans" Description SportMap app - ala endomondo, nike run, strava, runtastic, etc. General idea - app, that would help in unknown terrain navigation and training. App is based on Google Maps (or openstreet or some other) and built-in GPS functionality. Display map, and update your location on map display. Allow toggling of "keep map constantly centered", "keep north-up". When tracking is started, start to draw tail from start to current locattion. Allow user to set checkpoints (permanent) and waypoints (single) on track. Ie when adding new waypoint, remove previous. Calculate and display direct and travelled distance from start, last checkpoint and last waypoint. Time elapsed from start, pace (in minutes per km) overall in every three section. Save all the sessions and all the checkpoints to database. Allow user to view/delete old sessions - display statistics and track on map. For controlling the app from lock screen, implement sticky custom layout notification - UI similar to what you have under the map. When user stops session, ask for confirmation. Do not let to stop session from lockscreen. Constantly(after every position update) update notification to display current info - distances and pace. GPS listener and notification intents broadcastlistener has to be implemented in service, otherwise app cannot be kept running in background. App has to support rotation (and state has to be restored) - move buttons from bottom to left-or-right screen edge in landscape mode. Provide on-screen compass (must be possible to turn on-and-off). Provide session export possibility - ie as email attachment for example. File format - gpx. https://www.topografix.com/gpx_manual.asp (checkpoints as waypoints gpx format). Change app icon into something more meaningful. Final testing of your app will happen in real life (end of may/beginning of june 2019) - using paper map and your app find hidden checkpoints in terrain - take photo of every cp and present these and your track (sent as email attachment to teacher) at the end. Asciiart of UI: -------------------------------------- North-Up Reset Compass Options MAP -------------------------------------- Start 15 000 | add 1500 | add 783 or 1:35:47 | CP 1137 | WP 332 stop 8:45 | icon 6:37 | icon 7:35 =================================== Homework 04 - iOS =================================== Deadline 01 - 2019-04-23 23:59 Description 15 Puzzle - https://en.wikipedia.org/wiki/15_puzzle Single player game, using buttons. No movement of buttons, just replace text. Nice UI, rotation (portrait and landscape). All screen sizes and variations. Game logic in separate class! Timer, Scoring. timer in ios/swift: ------------------------- var timer:Timer? var timeLeft = 60 timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(onTimerFires), userInfo: nil, repeats: true) @objc func onTimerFires() { timeLeft -= 1 timeLabel.text = "\(timeLeft) seconds left" if timeLeft <= 0 { timer.invalidate() timer = nil } } ------------------------- =================================== Homework 05 - iOS =================================== Deadline 02 - 2019-05-09 23:59 15 Puzzle Embed in split view and navigation view Enable theme changing - colors, etc Enable changing board size - select width and height separately =================================== Homework 06 - iOS =================================== Deadline 01 - 2019-05-16 23:59 Songinfo & Tableview Write an iOS app Main UI - UITabView or UINavigationView Tab 1 Display current song info from selected radio station, allow radio station selection Update json info based on timer - 15 sec interval and display it on screen Tab 2 - UITableView keep track of artists and songs in arrays (use correct structures), display them in tableview (like in your android homework) Json info about current track http://dad.akaver.com http://dad.akaver.com/api/SongTitles/SP =================================== Homework 07 - iOS =================================== Deadline 01 - 24h before exam starts (exam starts at 11:00) Implement Core Data to store station, artist and track info (the same as in Android) Implement media player - streaming stations should play