Skip to content

Instantly share code, notes, and snippets.

View gabrielbmoro's full-sized avatar
👋
Hii

Gabriel Bronzatti Moro gabrielbmoro

👋
Hii
View GitHub Profile
@gabrielbmoro
gabrielbmoro / HeaderComponent.kt
Created November 12, 2020 11:57
Custom ViewGroup using a ConstraintLayout
data class HeaderContent(
val headerText: String,
val subHeaderText: String,
val buttonText: String,
val buttonEvent: (()->Unit),
val isButtonVisible: Boolean,
val barEvent: (()->Unit)
)
class HeaderComponent @JvmOverloads constructor(
@gabrielbmoro
gabrielbmoro / deep_layout.xml
Last active November 25, 2021 00:21
Deep Layout - Example
<LinearLayout>
<FrameLayout>
<RelativeLayout>
<ConstraintLayout>
<View />
<View />
<View />
<View />
</ConstraintLayout>
</RelativeLayout>
@gabrielbmoro
gabrielbmoro / show_message.kt
Last active November 25, 2021 00:30
Example - Annotated argument
fun showMessage(context: Context, @StringRes val idRes: Int) {
Toast.makeText(context, idRes, Toast.SHORT_LENGHT).show()
}
@gabrielbmoro
gabrielbmoro / show_message.kt
Last active November 25, 2021 00:29
Example - Not annotated argument
fun showMessage(context: Context, val idRes: Int) {
Toast.makeText(context, idRes, Toast.SHORT_LENGHT).show()
}
private ResultProfileBinding binding;
@Override
public View onCreateView (LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
binding = ResultProfileBinding.inflate(inflater, container, false);
View view = binding.getRoot();
return view;
}
@gabrielbmoro
gabrielbmoro / UserNameStepViewModelTest.kt
Created January 5, 2022 03:34
Example 1 - Unit tests article
private val localRepository = mockk<LocalRepository>()
@Test
fun `user name - already exists a user name`() {
every { localRepository.userName() }.returns("Moro")
val viewModel = UserNameStepViewModel(localRepository)
val result = viewModel.userName
Truth.assertThat(result).isEqualTo("Moro")
@gabrielbmoro
gabrielbmoro / UserEmailStepViewModelTest.kt
Created January 5, 2022 04:00
Triple AAA (Arrange-Act-Assert)
@Test
fun `user email - already exists a user email`() {
// arrange
every { localRepository.userEmail() }.returns("[email protected]")
val viewModel = UserEmailStepViewModel(localRepository)
// act
val result = viewModel.userEmail
// assert
@gabrielbmoro
gabrielbmoro / Truth.kt
Last active January 5, 2022 04:12
Truth Examples
// string
Truth.assertThat(result).isEqualTo("my string")
// list
Truth.assertThat(result).isEmpty()
// custom object
Truth.assertThat(uiBase).isEqualTo(
UIBaseState.Error("Invalid e-mail")
)
@gabrielbmoro
gabrielbmoro / MainNavGraph.kt
Last active January 21, 2022 13:39
NavGraph example - Nested graphs
@Composable
fun MainNavGraph(navController: NavHostController, firstDestination: String) {
NavHost(
navController = navController,
startDestination = firstDestination
) {
navigation(
route = ScreenRoutes.ON_BOARDING_ROUTE,
startDestination = ScreenRoutes.ON_BOARDING_WELCOME_NAVO_MESSAGE_ROUTE
@gabrielbmoro
gabrielbmoro / ScreenRoutes.kt
Created January 21, 2022 13:43
Example of Screen Routes - Navigation in Compose
object ScreenRoutes {
const val ON_BOARDING_ROUTE = "Simplemath_Onboarding"
const val ON_BOARDING_WELCOME_NAVO_MESSAGE_ROUTE = "Simplemath_Onboarding_Welcome_Navo_Message"
const val ON_BOARDING_USER_NAME_STEP_ROUTE = "Simplemath_Onboarding_UserNameStep"
const val ON_BOARDING_USER_AGE_STEP_ROUTE = "Simplemath_Onboarding_UserAgeStep"
const val ON_BOARDING_USER_EMAIL_STEP_ROUTE = "Simplemath_Onboarding_UserEmailStep"
const val ON_BOARDING_WELCOME_USER_STEP_ROUTE = "Simplemath_Onboarding_WelcomeUserStep"
const val DASHBOARD_ROUTE = "Simplemath_Dashboard"