Comments (20)
Go for it! If you have questions let me know and I can help out. 👍
from se-daily-ios.
#27 Opens up the email creation dialog on iOS to write to Jeff if the user reports they do not like the app. This app review flow was added using WaitForIt.
The update view that lists new features still needs to be added. I waited until #27 was merged into develop because I wanted to use the PopupDialog pod for the view to list the new features associated with an app update. If you have the copy you'd like to display in the next app update you can list it here or send it to me on slack and I can get this up in a pr soon.
from se-daily-ios.
The fastlane route sounds good to me if you think that is a good option.
from se-daily-ios.
The fastlane route turned out to be more complex than I originally imagined. The challenges there were gathering up all of the different internationalized release_notes.txt files and creating or adding these strings to Localizable.strings.
My implementation doesn't rely on the release notes, you supply what body text you'd like in that what's new pop up, you can copy the release notes into Localizable.strings if you like. But this way there is flexibility in what's displayed in app.
from se-daily-ios.
I'd love to take a shot at this issue.
from se-daily-ios.
I just looked at the WaitForIt implementation and tested it in the se-daily app, and WaitForIt doesn't execute on version bumps. This is what I tried:
struct NewFeature: ScenarioProtocol {
static func config() {
maxExecutionsPermitted = 1
}
}
What executions means in this context is exactly that, executions in the entire life of the app on someone's phone, not per app version. This app version bump logic can be done through the customConditions
closure, but I think it defeats the purpose of introducing this pod if this logic needs to be implemented.
On the other hand, using this pod for the app rating/review pop up right now sounds like a good idea.
What were your thoughts here? That the version bump detection would be provided out of the box by WaitForIt?
from se-daily-ios.
About "a popup that ask[s] people for a rating then takes them to either the app store to rate or (if the score is low) opens up an email to send to us with feedback," Apple recently started not allowing custom prompts: https://developer.apple.com/app-store/review/guidelines/ §1.1.7 bullet two.
Apple's review prompt could be called and combined with other custom logic inside of customConditions
in WaitForIt. Apple's prompt isn't guaranteed to appear. I don't believe the review score (stars) is accessible via API, so I don't see how an email prompt on low score can't be done.
I think calling Apple's prompt along with other custom logic is the preferred way of doing this. A link to the app store that opens up the "enter text review" for se-daily can be provided in app still, and a separate "email se-daily" button can be provided too.
Thoughts?
from se-daily-ios.
I was assuming there would be an easy way to implement the updated version trigger with WaitForIt. But that’s alright. If you can figure out how to do do it with customConditions that’s cool.
If not I’ll find another way to do it and if you’d like to try to make the ratings/review work, that is enough of a feature to have the WaitForIt pod.
from se-daily-ios.
What I'm thinking is if the version trigger is done with WaitForIt in customConditions
, then I'll have to use UserDefaults
to store the "last seen app version" and check it against the current app version on app start up. What I believe the point of WaitForIt is to abstract away UserDefaults. Right now I think it's probably better to just implement the new feature pop up outside of WaitForIt, which is what I'll attempt to do.
As for the ratings pop up, yea I can do that with WaitForIt.
from se-daily-ios.
For the review maybe just a window that asks “are you enjoying the app?” Instead of a rating prompt. Then if they say no we push to an email and if they say yes we bring up the in app rating prompt.
I think that is still okay per apple
from se-daily-ios.
So I believe getting the version and saving it either with WaitForIt or an own custom way should be pretty simple. UserDefaults is easy to work with and I think the version code is as easy as this:
if let text = Bundle.main.infoDictionary?["CFBundleVersion"] as? String {
print(text)
}
from se-daily-ios.
The saving it with WaitForIt is the part I don't understand. I don't see how WaitForIt provides a key-value store for saving values. I do understand how to use UserDefault in conjunction with WaitForIt's customConditions
to check for the last app version opened.
My point is, I don't see the advantage of using WaitForIt in this "app update" case since all WaitForIt will do is run the customConditions
block. Since the app update case is always checked, I assume is only meant to be executed once, executed immediately upon app launch of the new app version (i.e.: not taking advantage of WaitForIt's "events tracking"), I don't believe any other WaitForIt feature will be used in this app update case.
This is my understanding so far, I'll continue to look into it.
from se-daily-ios.
I see what you’re saying. I agree, I don’t see any reason to use the WaitForIt library for the app update view. I had the idea that we might use the time features, i.e. only show the update view after a certain amount of time in app. But that doesn’t make much sense.
Let’s do something custom for the app update view and WaitForIt with the ratings prompt. I believe there’s a benefit to only give the rating prompt if a user has spent a certain amount of time in app or has had a certain number of sessions. If that makes sense.
from se-daily-ios.
I've got a branch based off the wait-for-it branch, https://github.com/eddies5/se-daily-iOS/tree/update-new-features-prompt that adds the new features prompt on app updates. I want to wait until the wait-for-it branch gets merged because the new features prompt uses the PopupDialog pod.
from se-daily-ios.
That's awesome! I saw the project you built. Really cool! We can wait since this is really a requested feature anyway.
from se-daily-ios.
Is this complete now?
from se-daily-ios.
Not yet.
from se-daily-ios.
Do these need to be added?:
- a view when someone updates to tell the the new features
- or (if the score is low) opens up an email to send to us with feedback
And can they be added using WaitForIt? (edit) I can see how we can with custom conditions!
from se-daily-ios.
Ah okay, so you just need the release notes? Is there a automatic way we can get these from fastlane? Or remotely configure these in Firebase?
from se-daily-ios.
The release notes would work. I bet we could include a different file in the project as well if we wanted different copy in the app. Fastlane does include a release_notes.txt in its metadata folder. I can experiment with some combination of build phase and SwiftGen so that the latest release notes are always compiled into the app, and using SwiftGen would allow these in app dialog to also internationalized.
It could be remotely configured on Firebase as well, we'd have to handle internationalization somehow in this case too.
from se-daily-ios.
Related Issues (20)
- Audio player appears as blank after a podcast episode is done downloading HOT 1
- Bookmarked, Downloaded Episode Not Playing HOT 4
- Player auto-playing and also dissapearing HOT 2
- [Enhancement] Login screen redesign HOT 4
- Player loses the listener's place in the episode HOT 1
- Missing Dependency 'SwiftIcons' HOT 1
- [Feature] Apple Car Play
- [Bug] While audio overlay is being displayed, it covers content in some sections
- [Bug] When related links tableView is empty, user cannot add a link
- [Enhancement] Update Stylesheet with fonts used in the project
- [Enhancement] Refactor remaining Storyboards into layout code using SnapKit
- Downloading an episode should also mark it as saved; "Saved" and "Downloaded" should both be displayed under the "Saved" tab; delete Downloads tab HOT 2
- Add tab for notifications
- Implement Algolia
- Ability to tag users
- Migrate to a progressive webapp
- Change out firebase key to be non-testing key.
- Remove "Just For You" And Add "Most Viewed" Back to Bottom Bar HOT 8
- Profile view for users HOT 2
- Kept seeing the "Hello! Enjoying the SEDaily App" after clicking No? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from se-daily-ios.