Latest Episode
Play

Go Back   Keith and The Girl Forums Keith and The Girl Forums The KATG App

The KATG App Comments, concerns, and bugs

Like Tree3Likes
Reply
 
Thread Tools Display Modes
Old 02-13-2016, 12:10 PM   #1 (permalink)
Administrator
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer38-hour Marathon 2014 Kickstarter Backer54-hour Marathon 2013 Kickstarter Backer
 
MichaelApproved's Avatar
 
Join Date: Aug 2005
Location: In bed with your mother
Posts: 957
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)   Reply With Quote
Old 02-13-2016, 12:38 PM   #2 (permalink)
Member
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer38-hour Marathon 2014 Kickstarter Backer54-hour Marathon 2013 Kickstarter Backer
 
Piscean's Avatar
 
Join Date: Jan 2007
Posts: 71
This is great news! Any idea when it will be available for testing?
MichaelApproved likes this.
(Offline)   Reply With Quote
Old 02-13-2016, 04:28 PM   #3 (permalink)
Administrator
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer38-hour Marathon 2014 Kickstarter Backer54-hour Marathon 2013 Kickstarter Backer
 
MichaelApproved's Avatar
 
Join Date: Aug 2005
Location: In bed with your mother
Posts: 957
Quote:
Originally Posted by Piscean View Post
This is great news! Any idea when it will be available for testing?
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)   Reply With Quote
Old 02-20-2016, 01:26 PM   #4 (permalink)
Administrator
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer38-hour Marathon 2014 Kickstarter Backer54-hour Marathon 2013 Kickstarter Backer
 
MichaelApproved's Avatar
 
Join Date: Aug 2005
Location: In bed with your mother
Posts: 957
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)   Reply With Quote
Old 03-08-2016, 10:36 AM   #5 (permalink)
Administrator
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer38-hour Marathon 2014 Kickstarter Backer54-hour Marathon 2013 Kickstarter Backer
 
MichaelApproved's Avatar
 
Join Date: Aug 2005
Location: In bed with your mother
Posts: 957
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)   Reply With Quote
Old 03-16-2016, 04:19 PM   #6 (permalink)
Senior Member
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer38-hour Marathon 2014 Kickstarter Backer54-hour Marathon 2013 Kickstarter Backer
 
lizsquiz's Avatar
 
Join Date: May 2008
Location: San Francisco Bay Area, CA
Posts: 892
It seems like in the latest version, the ability to just stream without downloading is lost. Is that intentional?
(Offline)   Reply With Quote
Old 03-16-2016, 05:22 PM   #7 (permalink)
Administrator
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer38-hour Marathon 2014 Kickstarter Backer54-hour Marathon 2013 Kickstarter Backer
 
MichaelApproved's Avatar
 
Join Date: Aug 2005
Location: In bed with your mother
Posts: 957
Quote:
Originally Posted by lizsquiz View Post
It seems like in the latest version, the ability to just stream without downloading is lost. Is that intentional?
Unfortunately, it is. We had to make that change because the stream/download combo was so buggy that it was hurting both features. The constant bugs in the current one is why I decided to start from scratch and rewrite things.

In the version that I'm writing, you can stream or download.
(Offline)   Reply With Quote
Old 03-16-2016, 05:29 PM   #8 (permalink)
Senior Member
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer38-hour Marathon 2014 Kickstarter Backer54-hour Marathon 2013 Kickstarter Backer
 
lizsquiz's Avatar
 
Join Date: May 2008
Location: San Francisco Bay Area, CA
Posts: 892
Cool, so long as you're aware, I'm happy
MichaelApproved likes this.
(Offline)   Reply With Quote
Old 10-22-2016, 04:11 PM   #9 (permalink)
Member
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer
 
amnesiac's Avatar
 
Join Date: Jan 2009
Location: Calgary, Alberta
Posts: 90
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.
(Offline)   Reply With Quote
Old 10-24-2016, 10:17 AM   #10 (permalink)
Administrator
24-hour Marathon 2017 Fundraiser Backer47-hour Marathon 2016 Kickstarter Backer57-hour Marathon 2015 Kickstarter Backer38-hour Marathon 2014 Kickstarter Backer54-hour Marathon 2013 Kickstarter Backer
 
MichaelApproved's Avatar
 
Join Date: Aug 2005
Location: In bed with your mother
Posts: 957
Quote:
Originally Posted by amnesiac View Post
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.
Interesting idea. I might be able to create a button that sends an email with a time stamp. Would that be helpful?

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)   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off



All times are GMT -5. The time now is 07:10 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.1
Keith and The GirlAd Management plugin by RedTyger