|
The KATG App Comments, concerns, and bugs |
![]() |
|
Thread Tools | Display Modes |
Keith and The Girl is a free comedy talk show and podcast
Check out the recent shows
Click here to get Keith and The Girl free on iTunes.
Click here to get the podcast RSS feed. Click here to watch all the videos on our YouTube channel. |
![]() |
#1 (permalink) |
Administrator
Join Date: Aug 2005
Location: In bed with your mother
Posts: 961
|
Rewriting both the iPhone and Android apps
I'm rewriting the iPhone & Android apps. This is the first of several videos that I'm going to post which follow my progress. This new version of the app will allow us to share 80% of the code between the iPhone and Android apps. That means, when we add something new for the iPhone, it will also be added to the Android version, since they share the same code. The 20% difference in code are device specific features, such as how the lock screen displays the player controls or how we handle push notifications. Occasionally, something will be available for just the Android or just the iPhone but that'll be related to the device itself. The core features will be released for both iPhone and Android at the same time. This first video shows some core elements working - Contacting the KATG server. - Downloading the list of shows. - Downloading the images. - Downloading the episodes for a show and displaying those. - Basic navigation. One of the major challenges with the app is keeping a local copy of everything in the app, so it's available offline. It means... - Check if you have a copy of the data in the app first. - If you do have data, is it outdated? - If you need to download content, make sure to only grab what you need, so you don't waste battery life downloading the entire library of content over 3G. - Save that newly downloaded content. - Display the new information. The code is written in a platform called Cordova with Ionic framework. This is the first time I'm working with this platform, so there's also a learning curve. Learning the platform and getting the core offline features to work was a large challenge for this phase. Now that the core backend tools were created, I can start to work on the frontend stuff, such as displaying the show pictures, notes, guests and automatically downloading the shows as they come out. |
(Offline) |
![]() |
![]() |
#3 (permalink) |
Administrator
Join Date: Aug 2005
Location: In bed with your mother
Posts: 961
|
I'm trying not to make empty promises, so all I can say now is that I'll have a new update at least once a week. After about 3 updates, I'll have a better handle on the roadmap and more credibility with the timeline.
|
(Offline) |
![]() |
![]() |
#4 (permalink) |
Administrator
Join Date: Aug 2005
Location: In bed with your mother
Posts: 961
|
Rewriting both the iPhone and Android apps - Part 2
This update shows great progress with the episode and guest information. Here's what I added. - A tab with all guest names and their photos. - The list of episodes now includes the guest information and their photo. - Clicking into an episode reveals the episode details screen which includes the notes, guest photos and pictures from the episode. Struggles ---------------------------- Since the last update, I had to rewrite some of the core code. I was trying to make generic functions that could be reused in much of the code but they turned out to be too generic. I ended up pulling back and writing a custom function for many of the database and API requests. They're fairly similar to each other but different enough to need their own functions. Screen optimizations have been a struggle. The lists are choppy while scrolling. I think it's because there are so many images on the screen and the way I'm displaying images could be a problem. I've done 90% of the optimizations that I'd like to do. I'll leave the last 10% alone and wait to work on it more when we have the final design in place. Regarding the image loading, Android has a security feature that's making it difficult to display downloaded images. The problem is the webview isn't allowed to access the data folder. I have to encode the images as base64 content and make the image source a data URL. That slows down the time it takes to display all those images. Having so many pictures with data URLs could also be adding an extra memory load to the webview. I can do more tests to be sure but what's the point? It's the only way I can display images, so I have to live with it. There's an alternative way to bypass the Android image security problem. I can include a proxy web service with the app and have that service read the files. The tag would look like src="http://localhost:8000/images/guest-photo-123.jpg" but that's one more chunk of code that I'd have to maintain and another chunk of code that could introduce bugs. Not worth it. Going forward ---------------------------- My focus for the next update is going to be streaming/downloading the audio files and player controls. I've already done proof of concept tests that have been successful, so I don't think I'll run into major problems. Fingers crossed! The framework ---------------------------- For those wondering, I'm using Cordova with Ionic framework 1.X with Angular JS 1.X. Both Ionic and Angular have 2.0 releases in beta right now. Those new versions are supposed to have major improvements in performance. I'm debating whether the performance improvements will be worth moving to the new versions, even while they're in beta. The major concern with moving is that they both changed a lot of their core methods for doing things. I'll have to learn the new stuff and rewrite a good chunk of code to make things work. That'll delay things and we'll also lose access to the large plugin library that's available for the current version. Will it be worth it? That's a decision for later. |
(Offline) |
![]() |
Keith and The Girl is a free comedy talk show and podcast
Check out the recent shows
Click here to get Keith and The Girl free on iTunes.
Click here to get the podcast RSS feed. Click here to watch all the videos on our YouTube channel. |
![]() |
#5 (permalink) |
Administrator
Join Date: Aug 2005
Location: In bed with your mother
Posts: 961
|
Rewriting both the iPhone and Android apps - Part 3
In this update, I rewrote the core code, again. This time, I feel great about how the code is performing and app is at the level I'd like it to be. The newly implemented features are: - Guest list with their photo, description and most recent appearance. - Guest details with a little more info and a list of all the shows they've been on. - Show photos that open into a gallery. - Streaming and downloaded audio with play, pause, and skip ability. - Resume the place where you last listened. - "Currently playing" bar at the bottom that shows you the currently playing episode. This bar will always feature the most recently listened to show. Coming up next: - A scrubber bar that tracks the current position of the episode and allows you to scrub forwards and backwards. - Background downloading while the app is closed. - Automatic downloading when a new episode is out. - Push notifications. I'm not sure how the automatic downloads are going to work out. This is an area that I haven't created a proof of concept for. I've done some research and there are several tools available but I think the existing tools might be limited. I might need to hire Android & iOS developers to enhance those tools for me, so that I can achieve the features I need. Namely, I'd like downloads to automatically trigger with a silent push notification and then trigger a local push notification when the download has completed. |
(Offline) |
![]() |
![]() |
#7 (permalink) | |
Administrator
Join Date: Aug 2005
Location: In bed with your mother
Posts: 961
|
Quote:
In the version that I'm writing, you can stream or download. |
|
(Offline) |
![]() |
![]() |
#9 (permalink) |
Senior Member
Join Date: Jan 2009
Location: Calgary, Alberta
Posts: 143
|
This looks really complex & difficult. Any updates for us?
I came to this forum to suggest a feature idea, but after reading this thread I doubt my idea is possible. Anyway: I want to participate more in the KATG awards but I find it a pain to stop the episode and write down the time at which I note an award-worthy moment. What if there was a button you could push while listening to the show that created a bookmark/time stamp and a list of those time stamps appears somewhere else in the app? Then I wouldn't have to stop the show to make notes. Thanks for your hard work.
__________________
EDIT SIGNATURE LINE |
(Offline) |
![]() |
![]() |
#10 (permalink) | |
Administrator
Join Date: Aug 2005
Location: In bed with your mother
Posts: 961
|
Quote:
I'm literally in the final stages of this. I just squashed a few bugs today and have a release candidate ready for the team to test. |
|
(Offline) |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|