Блог

WeatherApp #2 – MainFragment, ViewBinding

MainActivity.kt import androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport com.meter_alc_rgb.weatherappcursey.fragments.MainFragmentclass MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) supportFragmentManager .beginTransaction() .replace(R.id.placeHolder, MainFragment.newInstance()) .commit() }} MainFragment.kt import android.os.Bundleimport androidx.fragment.app.Fragmentimport android.view.LayoutInflaterimport android.view.Viewimport android.view.ViewGroupimport com.meter_alc_rgb.weatherappcursey.Rimport com.meter_alc_rgb.weatherappcursey.databinding.FragmentMainBindingclass MainFragment : Fragment() { private lateinit var binding: FragmentMainBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { binding = FragmentMainBinding.inflate(inflater, container, false) return binding.root } companion object { @JvmStatic fun newInstance() = MainFragment() }} build.gradle… Подробнее »WeatherApp #2 – MainFragment, ViewBinding

Weather App Jetpack Compose #1

MainActivity import android.content.Contextimport android.os.Bundleimport android.util.Logimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport androidx.compose.foundation.backgroundimport androidx.compose.foundation.layout.*import androidx.compose.material.Buttonimport androidx.compose.material.MaterialThemeimport androidx.compose.material.Surfaceimport androidx.compose.material.Textimport androidx.compose.runtime.Composableimport androidx.compose.runtime.MutableStateimport androidx.compose.runtime.mutableStateOfimport androidx.compose.runtime.rememberimport androidx.compose.ui.Alignmentimport androidx.compose.ui.Modifierimport androidx.compose.ui.graphics.Colorimport androidx.compose.ui.tooling.preview.Previewimport androidx.compose.ui.unit.dpimport com.android.volley.Requestimport com.android.volley.toolbox.StringRequestimport com.android.volley.toolbox.Volleyimport com.meter_alc_rgb.wetherappcompose.ui.theme.WetherAppComposeThemeimport org.json.JSONObjectconst val API_KEY = “Ваш API ключь”class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { WetherAppComposeTheme { // A surface container using the ‘background’ color from the theme Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background ) { Greeting(“London”, this) }… Подробнее »Weather App Jetpack Compose #1

Weather app #1

Разрешение в AndroidManifest <uses-permission android:name=”android.permission.INTERNET”/> Зависимость Volley для build.gradle implementation ‘com.android.volley:volley:1.2.1’ MainActivity import androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.util.Logimport com.android.volley.Requestimport com.android.volley.toolbox.StringRequestimport com.android.volley.toolbox.Volleyimport com.meter_alc_rgb.wetherapp2.databinding.ActivityMainBindingimport org.json.JSONObjectconst val API_KEY = “297ffc1c3e944aefaaf93152221705″class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) binding.bGet.setOnClickListener { getResult(“London”) } } private fun getResult(name: String){ val url = “https://api.weatherapi.com/v1/current.json” + “?key=$API_KEY&q=$name&aqi=no” val queue = Volley.newRequestQueue(this) val stringRequest = StringRequest(Request.Method.GET, url, { response->… Подробнее »Weather app #1

EarnApp #6

MainActivity import androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.os.CountDownTimerimport android.widget.Toastimport androidx.recyclerview.widget.LinearLayoutManagerimport com.google.android.gms.ads.*import com.google.android.gms.ads.interstitial.InterstitialAdimport com.google.android.gms.ads.interstitial.InterstitialAdLoadCallbackimport com.neco_desarrollo.earnapp.adapters.CategoryAdapterimport com.neco_desarrollo.earnapp.adapters.ContentManagerimport com.neco_desarrollo.earnapp.databinding.ActivityMainBindingimport kotlin.random.Randomclass MainActivity : AppCompatActivity(), CategoryAdapter.Listener { private lateinit var binding: ActivityMainBinding private var adapter: CategoryAdapter? = null private var interAd: InterstitialAd? = null private var timer: CountDownTimer? = null private var posM: Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) initAdMob() (application as AppMainState).showAdIfAvailable(this){} initRcView() binding.imageBg.setOnClickListener { getResult() } } private fun… Подробнее »EarnApp #6

EarnApp #5

MainActivity import androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.os.CountDownTimerimport android.widget.Toastimport androidx.recyclerview.widget.LinearLayoutManagerimport com.google.android.gms.ads.*import com.google.android.gms.ads.interstitial.InterstitialAdimport com.google.android.gms.ads.interstitial.InterstitialAdLoadCallbackimport com.neco_desarrollo.earnapp.adapters.CategoryAdapterimport com.neco_desarrollo.earnapp.adapters.ContentManagerimport com.neco_desarrollo.earnapp.databinding.ActivityMainBindingclass MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private var adapter: CategoryAdapter? = null private var interAd: InterstitialAd? = null private var timer: CountDownTimer? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) initAdMob() (application as AppMainState).showAdIfAvailable(this){} initRcView() binding.imageBg.setOnClickListener { getResult() } } private fun initRcView() = with(binding){ adapter = CategoryAdapter() rcViewCat.layoutManager =… Подробнее »EarnApp #5

Jetpack Compose – Card, Box, Image

MainActivity import android.os.Bundleimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport androidx.compose.foundation.Imageimport androidx.compose.foundation.backgroundimport androidx.compose.foundation.layout.*import androidx.compose.foundation.shape.CircleShapeimport androidx.compose.foundation.shape.RoundedCornerShapeimport androidx.compose.material.Cardimport androidx.compose.material.MaterialThemeimport androidx.compose.material.Surfaceimport androidx.compose.material.Textimport androidx.compose.runtime.Composableimport androidx.compose.ui.Alignmentimport androidx.compose.ui.Modifierimport androidx.compose.ui.draw.clipimport androidx.compose.ui.graphics.Colorimport androidx.compose.ui.layout.AlignmentLineimport androidx.compose.ui.layout.ContentScaleimport androidx.compose.ui.res.painterResourceimport androidx.compose.ui.tooling.preview.Previewimport androidx.compose.ui.unit.dpimport androidx.compose.ui.unit.spimport com.neco_desarrollo.composelessonsyt.ui.theme.ComposeLessonsYTThemeclass MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Column() { ListItem(“Zac Efron”, “Actor”) ListItem(“Zac Efron”, “Actor”) ListItem(“Zac Efron”, “Actor”) ListItem(“Zac Efron”, “Actor”) ListItem(“Zac Efron”, “Actor”) ListItem(“Zac Efron”, “Actor”) } } }}@Composableprivate fun ListItem(name: String, prof: String){ Card( modifier = Modifier… Подробнее »Jetpack Compose – Card, Box, Image

Motivation App

MainActivity import androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.widget.Toastimport androidx.recyclerview.widget.LinearLayoutManagerimport com.google.android.gms.ads.*import com.google.android.gms.ads.interstitial.InterstitialAdimport com.google.android.gms.ads.interstitial.InterstitialAdLoadCallbackimport com.neco_desarrollo.earnapp.adapters.CategoryAdapterimport com.neco_desarrollo.earnapp.adapters.ContentManagerimport com.neco_desarrollo.earnapp.databinding.ActivityMainBindingclass MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private var adapter: CategoryAdapter? = null private var interAd: InterstitialAd? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) initAdMob() (application as AppMainState).showAdIfAvailable(this){} initRcView() } private fun initRcView() = with(binding){ adapter = CategoryAdapter() rcViewCat.layoutManager = LinearLayoutManager( this@MainActivity, LinearLayoutManager.HORIZONTAL, false) rcViewCat.adapter = adapter adapter?.submitList(ContentManager.list) } override fun… Подробнее »Motivation App

Open app ads

Зависимости def lifecycle_version = “2.2.0”implementation “androidx.lifecycle:lifecycle-extensions:$lifecycle_version”implementation “androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version”annotationProcessor “androidx.lifecycle:lifecycle-compiler:$lifecycle_version” AppMainState import android.app.Activity;import android.app.Application;import android.content.Context;import android.os.Bundle;import android.util.Log;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.lifecycle.Lifecycle;import androidx.lifecycle.LifecycleObserver;import androidx.lifecycle.OnLifecycleEvent;import androidx.lifecycle.ProcessLifecycleOwner;import com.google.android.gms.ads.AdError;import com.google.android.gms.ads.AdRequest;import com.google.android.gms.ads.FullScreenContentCallback;import com.google.android.gms.ads.LoadAdError;import com.google.android.gms.ads.MobileAds;import com.google.android.gms.ads.appopen.AppOpenAd;import java.util.Date;public class AppMainState extends Application implements Application.ActivityLifecycleCallbacks, LifecycleObserver { private AppOpenAdManager appOpenAdManager; private Activity currentActivity; @Override public void onCreate() { super.onCreate(); this.registerActivityLifecycleCallbacks(this); MobileAds.initialize( this, initializationStatus -> {}); ProcessLifecycleOwner.get().getLifecycle().addObserver(this); appOpenAdManager = new AppOpenAdManager(); } /** LifecycleObserver method that shows the app open ad when… Подробнее »Open app ads

Interstetial Ads

MainActivity import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import com.google.android.gms.ads.* import com.google.android.gms.ads.interstitial.InterstitialAd import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback import com.neco_desarrollo.earnapp.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private var interAd: InterstitialAd? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) initAdMob() binding.button.setOnClickListener { showInterAd() } } override fun onResume() { super.onResume() binding.adView.resume() loadInterAd() } override fun onPause() { super.onPause() binding.adView.pause() } override fun onDestroy() { super.onDestroy() binding.adView.destroy() } private… Подробнее »Interstetial Ads

Сколько можно заработать на андроид приложении #1

MainActivity import androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport com.google.android.gms.ads.AdRequestimport com.google.android.gms.ads.MobileAdsimport com.neco_desarrollo.earnapp.databinding.ActivityMainBindingclass MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) initAdMob() } override fun onResume() { super.onResume() binding.adView.resume() } override fun onPause() { super.onPause() binding.adView.pause() } override fun onDestroy() { super.onDestroy() binding.adView.destroy() } private fun initAdMob(){ MobileAds.initialize(this) val adRequest = AdRequest.Builder().build() binding.adView.loadAd(adRequest) }} AndroidManifest <?xml version=”1.0″ encoding=”utf-8″?><manifest xmlns:android=”http://schemas.android.com/apk/res/android” package=”Название вашего пакета”> <application android:allowBackup=”true” android:icon=”@mipmap/ic_launcher”… Подробнее »Сколько можно заработать на андроид приложении #1