Skip to content

Commit

Permalink
iOS: Remove "My" prefix from the app name in App Store (#1152)
Browse files Browse the repository at this point in the history
^ALTAPPS-1325
  • Loading branch information
ivan-magda authored Aug 12, 2024
1 parent 443f3a1 commit 059974a
Show file tree
Hide file tree
Showing 20 changed files with 23 additions and 60 deletions.
Original file line number Diff line number Diff line change
@@ -1 +1 @@
My Hyperskill
Hyperskill: Learn to Code
2 changes: 1 addition & 1 deletion androidHyperskillApp/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<uses-permission android:name="android.permission.DETECT_SCREEN_CAPTURE" />

<application
android:label="@string/android_app_name"
android:label="@string/app_name"
android:name=".HyperskillApp"
android:allowBackup="false"
android:supportsRtl="true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,7 @@ class AuthCredentialsFragment :
requireRouter().backTo(AuthSocialScreen())
}

viewBinding.signInToTextView.text = getString(
SharedRes.string.auth_sign_up_title,
getString(SharedRes.string.android_app_name)
)
viewBinding.signInToTextView.text = getString(SharedRes.string.auth_sign_up_title)
viewBinding.root.addKeyboardVisibilityListener { isVisible ->
if (!isAdded) return@addKeyboardVisibilityListener
viewBinding.signInHyperskillLogoShapeableImageView.isVisible = !isVisible
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,9 @@ class AuthSocialFragment :

viewBinding.signInToTextView.text =
if (isInSignUpMode) {
getString(
SharedRes.string.auth_sign_up_title,
getString(SharedRes.string.android_app_name)
)
getString(SharedRes.string.auth_sign_up_title)
} else {
getString(
SharedRes.string.auth_log_in_title,
getString(SharedRes.string.android_app_name)
)
getString(SharedRes.string.auth_log_in_title)
}

authMaterialCardViewsAdapter.items = listOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
android:text="@string/android_onboarding_title" />
android:text="@string/onboarding_title" />

<TextView
android:id="@+id/welcomeDescriptionTextView"
Expand Down
2 changes: 1 addition & 1 deletion iosHyperskillApp/fastlane/metadata/en-US/name.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
My Hyperskill: Learn to Code
Hyperskill: Learn to Code
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Master coding on-the-go with My Hyperskill! Immerse yourself in curated lessons, keep your streak and sharpen your knowledge with 3000+ hands-on topics.
Master coding on-the-go with Hyperskill! Immerse yourself in curated lessons, keep your streak and sharpen your knowledge with 3000+ hands-on topics.
2 changes: 1 addition & 1 deletion iosHyperskillApp/iosHyperskillApp/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>My Hyperskill</string>
<string>Hyperskill</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ enum Strings {
// MARK: - Common -

enum Common {
static let appName = sharedStrings.ios_app_name.localized()
static let connectionError = sharedStrings.connection_error.localized()
static let done = sharedStrings.done.localized()
static let yes = sharedStrings.yes.localized()
Expand Down Expand Up @@ -53,8 +52,8 @@ enum Strings {
// MARK: Social

enum Social {
static let logInTitle = sharedStrings.auth_log_in_title.format(args_: [Common.appName]).localized()
static let signUpTitle = sharedStrings.auth_sign_up_title.format(args_: [Common.appName]).localized()
static let logInTitle = sharedStrings.auth_log_in_title.localized()
static let signUpTitle = sharedStrings.auth_sign_up_title.localized()
static let jetBrainsAccount = sharedStrings.auth_jetbrains_account_text.localized()
static let googleAccount = sharedStrings.auth_google_account_text.localized()
static let gitHubAccount = sharedStrings.auth_github_account_text.localized()
Expand Down Expand Up @@ -484,7 +483,7 @@ enum Strings {
// MARK: - Welcome -

enum Welcome {
static let title = sharedStrings.ios_onboarding_title.localized()
static let title = sharedStrings.onboarding_title.localized()
static let text = sharedStrings.onboarding_text.localized()
static let primaryButton = sharedStrings.onboarding_primary_button_text.localized()
static let secondaryButton = sharedStrings.onboarding_secondary_button_text.localized()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
package org.hyperskill.app.core.domain.platform

import dev.icerock.moko.resources.StringResource
import org.hyperskill.app.SharedResources

actual class Platform actual constructor() {
actual val platformType: PlatformType = PlatformType.ANDROID
actual val platformDescription: String = "Android ${android.os.Build.VERSION.SDK_INT}"

actual val analyticName: String = "android"

actual val feedbackName: String = "Android"

actual val appNameResource: StringResource = SharedResources.strings.android_app_name
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
package org.hyperskill.app.core.domain.platform

import dev.icerock.moko.resources.StringResource

expect class Platform() {
val platformType: PlatformType
val platformDescription: String

val analyticName: String

val feedbackName: String

val appNameResource: StringResource
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package org.hyperskill.app.profile_settings.domain.model

import org.hyperskill.app.core.domain.platform.Platform

object FeedbackEmailDataBuilder {
internal object FeedbackEmailDataBuilder {
fun build(
supportEmail: String,
applicationName: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ internal class ProfileSettingsActionDispatcher(

val feedbackEmailData = FeedbackEmailDataBuilder.build(
supportEmail = resourceProvider.getString(strings.settings_send_feedback_support_email),
applicationName = resourceProvider.getString(platform.appNameResource),
applicationName = resourceProvider.getString(strings.app_name),
platform = platform,
userId = currentProfile?.id,
applicationVersion = userAgentInfo.versionCode
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ internal class RequestReviewModalComponentImpl(
analyticInteractor = appGraph.analyticComponent.analyticInteractor,
logger = appGraph.loggerComponent.logger,
buildVariant = appGraph.commonComponent.buildKonfig.buildVariant,
platform = appGraph.commonComponent.platform,
resourceProvider = appGraph.commonComponent.resourceProvider
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import co.touchlab.kermit.Logger
import org.hyperskill.app.analytic.domain.interactor.AnalyticInteractor
import org.hyperskill.app.analytic.presentation.wrapWithAnalyticLogger
import org.hyperskill.app.core.domain.BuildVariant
import org.hyperskill.app.core.domain.platform.Platform
import org.hyperskill.app.core.presentation.transformState
import org.hyperskill.app.core.view.mapper.ResourceProvider
import org.hyperskill.app.logging.presentation.wrapWithLogger
Expand All @@ -27,7 +26,6 @@ internal object RequestReviewModalFeatureBuilder {
analyticInteractor: AnalyticInteractor,
logger: Logger,
buildVariant: BuildVariant,
platform: Platform,
resourceProvider: ResourceProvider
): Feature<ViewState, Message, Action> {
val requestReviewModalReducer = RequestReviewModalReducer(
Expand All @@ -36,7 +34,6 @@ internal object RequestReviewModalFeatureBuilder {
).wrapWithLogger(buildVariant, logger, LOG_TAG)

val requestReviewModalViewStateMapper = RequestReviewModalViewStateMapper(
platform = platform,
resourceProvider = resourceProvider
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
package org.hyperskill.app.request_review.modal.view.mapper

import org.hyperskill.app.SharedResources
import org.hyperskill.app.core.domain.platform.Platform
import org.hyperskill.app.core.view.mapper.ResourceProvider
import org.hyperskill.app.request_review.modal.presentation.RequestReviewModalFeature.State
import org.hyperskill.app.request_review.modal.presentation.RequestReviewModalFeature.ViewState

internal class RequestReviewModalViewStateMapper(
private val platform: Platform,
private val resourceProvider: ResourceProvider
) {
fun map(state: State): ViewState =
when (state) {
State.Awaiting, State.Positive ->
ViewState(
title = resourceProvider.getString(
SharedResources.strings.request_review_modal_state_awaiting_title,
resourceProvider.getString(platform.appNameResource)
SharedResources.strings.request_review_modal_state_awaiting_title
),
description = null,
positiveButtonText = resourceProvider.getString(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@ class WelcomeQuestionnaireViewStateMapper(
private val platform: Platform,
private val resourceProvider: ResourceProvider
) {
private val title = resourceProvider.getString(
SharedResources.strings.welcome_questionnaire_title_template,
resourceProvider.getString(platform.appNameResource)
)

fun mapQuestionnaireTypeToViewState(type: WelcomeQuestionnaireType): WelcomeQuestionnaireViewState =
when (type) {
WelcomeQuestionnaireType.HOW_DID_YOU_HEAR_ABOUT_HYPERSKILL ->
Expand All @@ -28,7 +23,7 @@ class WelcomeQuestionnaireViewStateMapper(

private fun getHowDidYouHearAboutHyperskillViewState(): WelcomeQuestionnaireViewState =
WelcomeQuestionnaireViewState(
title = title,
title = resourceProvider.getString(SharedResources.strings.welcome_questionnaire_title),
items = listOf(
WelcomeQuestionnaireItem(
ClientSource.TIK_TOK,
Expand Down
14 changes: 6 additions & 8 deletions shared/src/commonMain/moko-resources/base/strings.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<!-- General -->
<string name="ios_app_name">My Hyperskill</string>
<string name="android_app_name">Hyperskill</string>
<string name="app_name">Hyperskill</string>

<string name="connection_error">Connection was lost</string>
<string name="common_error">Sorry, something went wrong: please try again later.</string>
Expand Down Expand Up @@ -39,8 +38,8 @@
<string name="user_list_home_user_name_hint">User name</string>

<!-- Auth -->
<string name="auth_log_in_title">Sign in to %s</string>
<string name="auth_sign_up_title">Sign up to %s</string>
<string name="auth_log_in_title">Sign in to Hyperskill</string>
<string name="auth_sign_up_title">Sign up to Hyperskill</string>
<string name="auth_jetbrains_account_text">JetBrains Account</string>
<string name="auth_google_account_text">Google</string>
<string name="auth_github_account_text">GitHub</string>
Expand Down Expand Up @@ -475,8 +474,7 @@
<string name="notification14_text">Me: If the IDE knows I\'m missing a semicolon, why won\'t it just add it itself? 🤔</string>

<!-- Onboarding -->
<string name="ios_onboarding_title">My Hyperskill</string>
<string name="android_onboarding_title">Hyperskill</string>
<string name="onboarding_title">Hyperskill</string>
<string name="onboarding_text">Code a little every day, wherever you are.</string>
<string name="onboarding_primary_button_text">Start for free</string>
<string name="onboarding_secondary_button_text">I already have an account</string>
Expand Down Expand Up @@ -649,7 +647,7 @@
<string name="search_placeholder_suggestions_subtitle">Search all of Hyperskill for topic theory</string>

<!-- Request review modal -->
<string name="request_review_modal_state_awaiting_title">Do you enjoy\n%s app?</string>
<string name="request_review_modal_state_awaiting_title">Do you enjoy\nHyperskill app?</string>
<string name="request_review_modal_state_awaiting_positive_button_text">👍 Yes</string>
<string name="request_review_modal_state_awaiting_negative_button_text">👎 No</string>

Expand Down Expand Up @@ -738,7 +736,7 @@
<string name="welcome_onboarding_entry_point_start_btn">Start my journey</string>

<!--Welcome onboarding first questionnaire-->
<string name="welcome_questionnaire_title_template">How did you hear about\n%s?</string>
<string name="welcome_questionnaire_title">How did you hear about\nHyperskill?</string>
<string name="welcome_questionnaire_tiktok_item">TikTok</string>
<string name="welcome_questionnaire_google_item">Google Search</string>
<string name="welcome_questionnaire_news_item">News/article/blog</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class ApplicationShortcutsInteractor(

return FeedbackEmailDataBuilder.build(
supportEmail = resourceProvider.getString(SharedResources.strings.settings_send_feedback_support_email),
applicationName = resourceProvider.getString(platform.appNameResource),
applicationName = resourceProvider.getString(SharedResources.strings.app_name),
platform = platform,
userId = currentProfile?.id,
applicationVersion = userAgentInfo.versionCode
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.hyperskill.app.core.domain.platform

import dev.icerock.moko.resources.StringResource
import org.hyperskill.app.SharedResources
import platform.UIKit.UIDevice

actual class Platform actual constructor() {
Expand All @@ -12,6 +10,4 @@ actual class Platform actual constructor() {
actual val analyticName: String = "ios"

actual val feedbackName: String = "iOS"

actual val appNameResource: StringResource = SharedResources.strings.ios_app_name
}

0 comments on commit 059974a

Please sign in to comment.