مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

آموزش نقشه گوگل مپ در برنامه نویسی اندروید با نمونه کد


API های لوکیشن در اندروید ، در زمینه ساخت برنامه های مکان نما ، کار را برای شما ساده کرده اند ؛ بدون اینکه نیاز پیدا کنید روی جزییات تکنولوژی لوکیشن تمرکز کنید . 

این کار با کمک خدمات Google Play امکان پذیر می شود، که آگاهی از location را با تقسیم بندی خودکار لوکیشن ،  geofencin و شناسایی اکتیویتی آسان می کند.

این مقاله به شما نشان می دهد که چگونه از سرویس های مکانی (Location Service) در اپلیکیشن خود استفاده کنید تا مکان کنونی و آپدیت های دوره ای لوکیشن را بگیرید و یا به دنبال آدرس ها بگردید و غیره...

The Location Object:

آبجکت (شی) لوکیشن ( Location object) نشان می دهد که یک لوکیشن جغرافیایی می تواند شامل عرض جغرافیایی، طول جغرافیایی و جدول زمانی و دیگر اطلاعات مانند جهت و ارتفاع  باشد. در زیر متد های مهمی وجود دارند که می توانید با آبجکت لوکیشن برای گرفتن اطلاعات یک مکان خاص از آن ها استفاده کنید.

متد ها و توضیحاتشان را در زیر میبینید :

 

(float distanceTo(Location dest : مسافت بین لوکیشن فعلی و لوکیشن بعدی داده شده را به متر بر می گرداند.

()float getAccuracy : صحت تقریبی لوکیشن فعلی را به متر به دست می آورد.

()double getAltitude : ارتفاع از سطح دریا را، اگر در دسترس باشد، به دست می آورد.

()float getBearing : جهت را به درجه به دست می آورد.

()double getLatitude : عرض جغرافیایی را به درجه به دست می آورد.

()double getLongitude : طول جغرافیایی را به درجه به دست می آورد.

()float getSpeed : سرعت را اگر در دسترس باشد، در متر بر ثانیه به دست می آورد.

()boolean hasAccuracy : یک متد بولین می باشد که اگر این موقعیت درست باشد ، (true) را برمی گرداند  . (در غیر این صورت false را بر میگرداند)

()boolean hasAltitude : بولینی است که اگر لوکیشن فعلی دارای ارتفاع باشد true را برمیگرداند. 

()boolean hasBearing : بولینی است که اگر لوکیشن دارای جهت باشد true را برمیگرداند. 

()boolean hasSpeed : بولینی است که اگر این موقعیت دارای سرعت باشد true را برمیگرداند. 

void setAccuracy(float accuracy) : دقت برآورد شده ی این لوکیشن را به متر تنظیم می کند

void setAltitude(double altitude) : ارتفاع را از سطح دریا به متر تنظیم می کند.

void setBearing(float bearing) : جهت را به درجه تنظیم می کند

void setLatitude(double latitude) : عرض جغرافیایی  را به درجه تنظیم می کند

void setLongitude(double longitude) : طول جغرافیایی را به درجه تنظیم می کند

void setSpeed(float speed) : سرعت را به متر بر ثانیه در سطح زمین تنظیم می کند

String toString() : یک رشته شامل توصیفات فشرده و خوانا از این آبجکت را برمی گرداند.

 

به دست آوردن موقعیت کنونی:

برای به دست آوردن لوکیشن کنونی ، یک location client ایجاد کنید.location client یک آبجکت LocationClient می باشد و با استفاده از متد ()connect به سرویس های لوکیشن (Location Services) متصل می شود.  سپس متد ()getLastLocation آن را فرا بخوانید. این متد آخرین لوکیشن را به شکل آبجکت لوکیشن ( Location object) برمی گرداند که شامل مختصات طول و عرض جغرافیایی و دیگر اطلاعاتی که در بالا توضیح داده شد، می باشد. برای داشتن لوکیشن بر مبنای عملکرد در اکتیویتی خود، باید دو اینترفیس را اجرا کنید :

  • GooglePlayServicesClient.ConnectionCallbacks
  • GooglePlayServicesClient.OnConnectionFailedListener

 

این اینترفیس ها متد های مهمی از call back را ارائه می دهند که شما برای اجرای کلاس اکتیویتی خود نیاز دارید.
برخی از این متد های مهم عبارتند از :

  • abstract void onConnected(Bundle connectionHint) :
  • این متد کال بک ، زمانی فرا خوانده می شود که سرویس لوکیشن (location service) به location client به طور موفقیت آمیزی متصل شود. شما از متد () connectبرای اتصال به location client استفاده خواهید کرد.
  • ()abstract void onDisconnected : این متد کال بک ، زمانی فراخوانده می شود که اتصال کاربر قطع شده باشد. شما از متد ()disconnect برای قطع شدن از location client استفاده خواهید کرد.
  • abstract void onConnectionFailed(ConnectionResult result) :
  • این متد کال بک ، زمانی استفاده می شود که در برقراری ارتباط بین کاربر (client) و سرویس (service) خطا (error) وجود داشته باشد.

 

شما باید در متد ()onCreate از کلاس اکتیویتی خود یک  location client ایجاد کنید، سپس آن را به ()onStart متصل کنید ، طوری که Location Services  در هنگامی که اکتیویتی شما به طور کامل قابل مشاهده است، لوکیشن کنونی را نشان دهد.
شما باید ارتباط کاربر را در متد ()onStop قطع کنید، طوری که وقتی برنامه ی شما قابل مشاهده نیست، Location Service ها ، لوکیشن کنونی را حفظ نکنند. این کار به حفظ توان باتری برای مدت طولانی کمک می کند.

به روز رسانی لوکیشن (Updated Location):

اگر می خواهید که به روز رسانی های لوکیشن را داشته باشید، علاوه بر اینترفیس های ذکر شده در بالا، لازم است که اینترفیس LocationListener را نیز اجرا کنید. این اینترفیس متد کال بک زیر را ارائه می دهد که شما برای اجرای کلاس اکتیویتی خود به آن نیاز دارید.

(abstract void onLocationChanged(Location location : این متد کال بک ، برای دریافت اطلاعیه ها از Location Client زمانی که لوکیشن تغییر کرده ، استفاده می شود.

 

کیفیت لوکیشن سرویس(Location Quality of Service) 

آبجکت LocationRequest ، برای درخواست کیفیت سرویس (QoS) برای آپدیت های لوکیشن ، از LocationClient استفاده می کند. متد های تنظیم کننده ای (setter method)  وجود دارند که برای رسیدگی به QoS مفید می باشند و در زیر ارائه شده اند. همچنین روش های گیرنده ی هم ارزی وجود که می توانید در اطلاعات رسمی اندروید آن ها را چک کنید.

setExpirationDuration(long millis) : زمان این تقاضا را به میلی ثانیه تنظیم می کند

(setExpirationTime(long millis : زمان انقضای تقاضا را از زمان بوت به میلی ثانیه تنظیم می کند

setFastestInterval(long millis) :  سریعترین وقفه را برای آپدیت های لوکیشن به میلی ثانیه تنظیم می کند

setInterval(long millis) : وقفه ی درخواستی را برای آپدیت های لوکیشن فعال به میلی ثانیه تنظیم می کند

(setNumUpdates(int numUpdates : تعداد آپدیت های لوکیشن را تنظیم می کند

setPriority(int priority) : اولویت درخواست را تنظیم می کند

 

اکنون به عنوان مثال اگر اپلیکیشن شما یک لوکیشن با میزان دقت خیلی بالا می خواهد، باید یک درخواست لوکیشن با متد

 setPriority(int) 

ایجاد کرده و بر روی PRIORITY_HIGH_ACCURACY تنظیم کند و 

setInterval(long) 

را روی 5 ثانیه تنظیم نماید . همچنین می توانید از وقفه های بزرگتر استفاده کنید و یا از دیگر اولویت ها مانند PRIORITY_LOW_POWER در سطح شهر مورد نظر  و یا PRIORITY_BALANCED_POWER_ACCURACY برای سطح بلوک.

اکتیویتی ها باید  در هنگام ورود به پس زمینه تمام در خواست های لوکیشن را حذف کنند (برای مثال در ()onPause) یا حداقل ، درخواست را به یک وقفه ی طولانی تر و کیفیت پایین تر تغییر دهند تا مصرف نیروی باتری را ذخیره کنند و باعث کاهش عمر باتری دستگاه نشوند.

نمایش آدرس یک لوکیشن (Displaying a Location Address) :

زمانی که شما آبجکت لوکیشن را دارید ، می توانید از متد ()Geocoder.getFromLocation استفاده کنید تا یک آدرس را برای طول و عرض جغرافیایی داده شده به دست آورید. این روش یک روش همزمان (synchronous) می باشد و ممکن است انجام آن زمان زیادی بگیرد، بنابراین شما باید از متد ()doInBackground ، کلاس AsyncTask فرا بخوانید.

برای استفاده از AsyncTask  باید آن را به زیر کلاس (subclass) هایی تقسیم کرد  و subclass ها ، متد:

doInBackground(Params...)

 را override کنند تا یک Taskرا در پس زمینه اپلیکیشن انجام دهند، و پس از اینکه محاسبات روی پس زمینه تمام می شود و زمان نمایش نتیجه فرا می رسد ، متد (onPostExecute(Result روی رشته ی UI درخواست و فراخوانی می شود. یک متد مهم دیگر هم در AyncTask وجود دارد که (execute(Params... params نام دارد ، این متد وظایف خود را با بهره گیری از پارامترهای خاصی انجام می دهد.

مثال زیر را بررسی کنید تا درک بهتری از چگونگی استفاده از AynchTask در هر اپلیکیشن اندروید داشته باشید. مثال زیر در عمل به شما نشان می دهد که چگونه از Location Services در اپلیکیشن خود استفاده کنید تا لوکیشن کنونی و آدرس مربوط به آن و غیره را به دست آورید.

توجه : برای آزمایش  مثال ، به یک موبایل مجهز شده به آخرین نسخه ی Android OS نیاز خواهید داشت. در غیر این صورت مجبور خواهید بود تلاش خود را با امولاتوری انجام دهید که ممکن است به درستی کار نکند.

ایجاد برنامه ی اندروید

1) شما از Android studio IDE برای ایجاد برنامه ی اندروید استفاده نموده و آن را تحت پکیج com.example.lbsdemo ایجاد کنید.

2) کتابخانه Google play Service را با دنبال کردن مراحل ساده ی زیر، به اپلیکیشن خود اضافه کنید

3) همانطور که در زیر نشان داده شده است ، فایل src/MainActivity.java را تا حدی تغییر دهید و کد های لازم را به آن اضافه کنید تا از لوکیشن کنونی به دست آمده و آدرس های هم تراز آن نگهداری کنید.

4) فایل layout XML را به res/layout/activity_main.xml تغییر دهید تا تمام مولفه های GUI را به آن بیفزایید که شامل سه دکمه و دو ویو متن می باشد تا لوکیشن یا آدرس را نمایش دهد.

5) res/values/strings.xml را تغییر دهید تا مقادیر ثابت مورد نیاز را تعریف کنید.

6) AndroidManifest.xml را به شکلی که در زیر نشان داده شده تغییر دهید.

7) برنامه را اجرا کنید تا امولاتور اندروید آغاز به کار کند و نتایج تغییرات انجام شده در برنامه را بررسی کند.

 

محتوای تغییر یافته ی فایل اکتیویتی اصلی MainActivity.java :

package com.example.clicksite7.myapplication;

import android.Manifest;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.test.mock.MockPackageManager;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

   Button btnShowLocation;
   private static final int REQUEST_CODE_PERMISSION = 2;
   String mPermission = Manifest.permission.ACCESS_FINE_LOCATION;

   // GPSTracker class
   GPSTracker gps;

   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
		
      try {
         if (ActivityCompat.checkSelfPermission(this, mPermission)
            != MockPackageManager.PERMISSION_GRANTED) {

            ActivityCompat.requestPermissions(this, new String[]{mPermission}, 
               REQUEST_CODE_PERMISSION);

            // If any permission above not allowed by user, this condition will
               execute every time, else your else part will work
         }
      } catch (Exception e) {
         e.printStackTrace();
      }

      btnShowLocation = (Button) findViewById(R.id.button);

      // show location button click event
      btnShowLocation.setOnClickListener(new View.OnClickListener() {

         @Override
         public void onClick(View arg0) {
            // create class object
            gps = new GPSTracker(MainActivity.this);

            // check if GPS enabled
            if(gps.canGetLocation()){

               double latitude = gps.getLatitude();
               double longitude = gps.getLongitude();

               // \n is for new line
               Toast.makeText(getApplicationContext(), "Your Location is - \nLat: "
                  + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
            }else{
               // can't get location
               // GPS or Network is not enabled
               // Ask user to enable GPS/network in settings
               gps.showSettingsAlert();
            }

         }
      });
   }
}

محتوای تغییر یافته فایل اکتیویتی اصلی GPSTracker.java :

package com.example.clicksite7.myapplication;

import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
import android.util.Log;

public class GPSTracker extends Service implements LocationListener {

   private final Context mContext;

   // flag for GPS status
   boolean isGPSEnabled = false;

   // flag for network status
   boolean isNetworkEnabled = false;

   // flag for GPS status
   boolean canGetLocation = false;

   Location location; // location
   double latitude; // latitude
   double longitude; // longitude

   // The minimum distance to change Updates in meters
   private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters

   // The minimum time between updates in milliseconds
   private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 minute

   // Declaring a Location Manager
   protected LocationManager locationManager;

   public GPSTracker(Context context) {
      this.mContext = context;
      getLocation();
   }

   public Location getLocation() {
      try {
         locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);

         // getting GPS status
         isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

         // getting network status
         isNetworkEnabled = locationManager
            .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

         if (!isGPSEnabled && !isNetworkEnabled) {
            // no network provider is enabled
         } else {
            this.canGetLocation = true;
            // First get location from Network Provider
            if (isNetworkEnabled) {
               locationManager.requestLocationUpdates(
                  LocationManager.NETWORK_PROVIDER,
                  MIN_TIME_BW_UPDATES,
                  MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
						
               Log.d("Network", "Network");
               if (locationManager != null) {
                  location = locationManager
                     .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
							
                  if (location != null) {
                     latitude = location.getLatitude();
                     longitude = location.getLongitude();
                  }
               }
            }
				
            // if GPS Enabled get lat/long using GPS Services
            if (isGPSEnabled) {
               if (location == null) {
                  locationManager.requestLocationUpdates(
                     LocationManager.GPS_PROVIDER,
                     MIN_TIME_BW_UPDATES,
                     MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
							
                  Log.d("GPS Enabled", "GPS Enabled");
                  if (locationManager != null) {
                     location = locationManager
                        .getLastKnownLocation(LocationManager.GPS_PROVIDER);
								
                     if (location != null) {
                        latitude = location.getLatitude();
                        longitude = location.getLongitude();
                     }
                  }
               }
            }
         }

      } catch (Exception e) {
         e.printStackTrace();
      }

      return location;
   }

   /**
      * Stop using GPS listener
      * Calling this function will stop using GPS in your app
   * */
	
   public void stopUsingGPS(){
      if(locationManager != null){
         locationManager.removeUpdates(GPSTracker.this);
      }
   }

   /**
      * Function to get latitude
   * */
	
   public double getLatitude(){
      if(location != null){
         latitude = location.getLatitude();
      }

      // return latitude
      return latitude;
   }

   /**
      * Function to get longitude
   * */
	
   public double getLongitude(){
      if(location != null){
         longitude = location.getLongitude();
      }

      // return longitude
      return longitude;
   }

   /**
      * Function to check GPS/wifi enabled
      * @return boolean
   * */
	
   public boolean canGetLocation() {
      return this.canGetLocation;
   }

   /**
      * Function to show settings alert dialog
      * On pressing Settings button will lauch Settings Options
   * */
	
   public void showSettingsAlert(){
      AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext);

      // Setting Dialog Title
      alertDialog.setTitle("GPS is settings");

      // Setting Dialog Message
      alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");

      // On pressing Settings button
      alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog,int which) {
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            mContext.startActivity(intent);
         }
      });

      // on pressing cancel button
      alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
         }
      });

      // Showing Alert Message
      alertDialog.show();
   }

   @Override
   public void onLocationChanged(Location location) {
   }

   @Override
   public void onProviderDisabled(String provider) {
   }

   @Override
   public void onProviderEnabled(String provider) {
   }

   @Override
   public void onStatusChanged(String provider, int status, Bundle extras) {
   }

   @Override
   public IBinder onBind(Intent arg0) {
      return null;
   }
}

 محتوای فایل res/layout/activity_main.xml :

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
   android:layout_width = "fill_parent"
   android:layout_height = "fill_parent"
   android:orientation = "vertical" >


   <Button
      android:id = "@+id/button"
      android:layout_width = "fill_parent"
      android:layout_height = "wrap_content"
      android:text = "getlocation"/>

</LinearLayout>

کد زیر محتوای فایل res/values/strings.xml برای تعریف دو ثابت آن خواهد بود :

<?xml version = "1.0" encoding = "utf-8"?>
<resources>
   <string name = "app_name">clicksite</string>
</resources>

جزییات فایل AndroidManifest.xml :

<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
   package = "com.example.tutorialspoint7.myapplication">
   <uses-permission android:name = "android.permission.ACCESS_FINE_LOCATION" />
   <uses-permission android:name = "android.permission.INTERNET" />
   <application
      android:allowBackup = "true"
      android:icon = "@mipmap/ic_launcher"
      android:label = "@string/app_name"
      android:supportsRtl = "true"
      android:theme = "@style/AppTheme">
		
      <activity android:name = ".MainActivity">
         <intent-filter>
            <action android:name = "android.intent.action.MAIN" />

            <category android:name = "android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>

</manifest>

اجازه دهید برنامه ی clicksite را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Android Studio ، یکی از فایل های اکتیویتی برنامه را باز کرده و روی آیکن Run  از نوار ابزار  کلیک کنید. قبل از شروع اپلیکیشن شما، Android Studio پنجره ای برای شما به نمایش می گذارد که شامل یک دکمه با نام getlocation است. اگر وری این دکمه کلیک کنید اطلاعات مربوط به لوکیشن فعلی شما را به شما نشان خواهد داد.

 

فصلِ: 20 , تعداد قسمت ها: 238 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل رایگان مربوط به مفاهیم php و api نویسی …

توضیحات کلی مجموعه: دوره متخصص اندروید کلیک سایت کامل ترین دوره جامع برنامه نویسی اندروید(حتما دمو دوره را ببینید)   چرا دوره متخصص جایگزین دوره صفرتاصد اندروید شد؟ کلیک سایت تصمیم گرفت …
فصلِ: 30 , تعداد قسمت ها: 182 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ساخت اپلیکیشن علی بابا-آموزش کالبک ها-…

دوره "متخصص" جایگزین دوره صفرتاصد اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دوره صفرتاصد شده است؟چرا باید دوره متخص…
فصلِ: 11 , تعداد قسمت ها: 121 , سطح: صفر تا صد

این فصل در یک نگاه:

عملیات شبیه فیلتر-ساخت الرت دیالوگ وچیدمان براساس فروش-مرتب سازی-نحوه خطایابی-استفاده از bottom sheet در اندروید-سبد خری…

آموزش ساخت اپلیکیشن اندروید دیجی کالا  : ساخت برنامه اندروید یکی از پر طرفدارترین آموزش های کلیک سایت می باشد. با توجه به فراگیر شدن سیستم اندروید و آشنایی افراد با این سیستم ، برنامه های ک…
فصلِ: 3 , تعداد قسمت ها: 179 , سطح: صفر تا صد

این فصل در یک نگاه:

در این دوره آموزشی ، برنامه نویسی اندروید و ios را با استفاده از زامارین خواهیم آموخت. همچنین به صورت کاملا پروژه محور ، اپلیکیشن فروشگاهی مشابه دیجی کالا را پیاده سازی خواهیم کرد. در انته…
فصلِ: 2 , تعداد قسمت ها: 58 , سطح: صفر تا صد

این فصل در یک نگاه:

توضیحات کلی مجموعه: سرفصل های دوره آموزش ساخت اپلیکیشن فیلیمو معرفی اهداف دوره مقدمه و بررسی پیش نیازهای دوره بررسی جزئی و …
فصلِ: 1 , تعداد قسمت ها: 9 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ساخت api key-آموزش استفاده از GPS گوشی ونمایش مکان شخص برروی نقشه-متصل کردن چند نقطه برروی نقشه با خط-رسم چند ضلعی…

حتما دمو دوره رو ببینید اولین دوره کامل کار با نقشه گوگل ومسیریابی در نقشه گوگل(این اموزش مشابه فارسی ندارد) اموزش کار با نقشه گوگل در برنامه نویسی اندروید یکی از مهم ترین مباحث هست که …
فصلِ: 1 , تعداد قسمت ها: 14 , سطح: صفر تا صد

این فصل در یک نگاه:

ساخت انواع نوتیفیکیشن ها -کار با وب سرویس پوشه-ارسال نوتیفیکیشن با سرویس پوشه-ارسال نوتیفیکیشن با one signal-اموزش کار ب…

با این مجموعه همه چیز در مورد نوتیفیکیشن و فایربیس رو خواهید اموخت یکی از مواردی که در استخدام کاربران در شرکت های برنامه نویسی بسیار موثر هست مبحث کار با firebase هست که ما دراین دوره ام…
فصلِ: 1 , تعداد قسمت ها: 16 , سطح: صفر تا صد

این فصل در یک نگاه:

لیست کردن فایل های صوتی ویدیویی گوشی-طاحی متریال وزیبا-استفاده از تب بندی-حرکت سیک بار همراه با اهنگ وزمان-ست کردن زمان …

توضیحات کلی مجموعه: اموزش ساخت یک موزیک پلیر و ویدیو پلیر ح رفه ای که کاملا کاربردی است و قابلیت نصب روی گوشی های مختلف را دارد از جمله امکانات این اپلیکیشن: لیست کردن فایل های صوتی وید…
فصلِ: 1 , تعداد قسمت ها: 61 , سطح: صفر تا صد

این فصل در یک نگاه:

اموزش ساخت اپلیکیشن کافه بازار-اشتراک گذاری اپلیکیشن-کار با رتروفیت-کاربا ران تیم پرمیشن- کار با فرگمنت ها-کار با sqlite…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دو…
فصلِ: 1 , تعداد قسمت ها: 9 , سطح: صفر تا صد

این فصل در یک نگاه:

پرداخت درون برنامه ای بازار-اموزش فروش سکه-اموزش فروش اشتراک-اموزش فروش نسخه پولی-اموزش چک کردن خرید کردن کاربر-اموزش کا…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 1 , تعداد قسمت ها: 20 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش کامل پیکربندی mvp-اموزش اتصال با سرور با رتروفیت و rxjava-اموزش کار با دیتابیس-آموزش کار با bottom navigation-اموز…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 1 , تعداد قسمت ها: 35 , سطح: متوسط

این فصل در یک نگاه:

این آموزش در یک فصل شامل 35 جلسه آموزش تصویری به همراه سورس کد ارائه شده است.…

سرفصل ها مقدمه و معرفی متد آموزشی بررسی جزئی و خلاصه موارد موردنیاز پیش از آموزش شامل: کار با ویوها،  کار با کتابخانه های مختلف و ... …
فصلِ: 1 , تعداد قسمت ها: 1 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ارسال پیامک با سامانه مدیر پیامک-ارسال کد فعال سازی برنامه با پیامک-اعتبارسنجی کد فعال سازی-ثبت نام در اپلیکیشن با…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 2 , تعداد قسمت ها: 19 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ارسال توکن در اندروید -اموزش امنیت در برنامه نویسی اندروید-اموزش ارسال توکن در هدر در اندروید-اموزش ساخت token -ام…

توضیحات کلی مجموعه: دموی دوره را حتما ببینید دوره امنیت و دیزاین پترن در برنامه نویسی اندروید که شامل دو فصل هست. فصل اول شامل اموزش singletone design patern-builder design patern-command …
فصلِ: 2 , تعداد قسمت ها: 44 , سطح: صفر تا صد

این فصل در یک نگاه:

در فصل دوم این دوره بیشتر میپردازیم به کار با کتابخانه ها و موارد پیشرفته تر مانند دوربین ، ضبط صدا، دیتا بیس ، و .....…

توضیحات کلی مجموعه: سلام خدمت کلیک سایتی های عزیز مجموعه آموزشی صفر تا صد برنامه نویسی اندروید در محیط بیسیک 4 اندروید (basic 4 android) معرفی محیط بیسیک 4 اندروید محیط b4a  تحت کمپانی A…
فصلِ: 3 , تعداد قسمت ها: 61 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل جدید و اپدیت های جدید-آموزش کار با برودکست ریسیور در کاتلین-آموزش چک کردن اتصال به اینترنت در کاتلین-اموزش اپلود کرد…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 5 , تعداد قسمت ها: 21 , سطح: متوسط

این فصل در یک نگاه:

نحوه ارورگیری-رفع ایراد-رفع مشکل-اشتراک گذاری مطالب-ساخت اکتیویتی تنظیمات-اشتراک گذاری مطالب-جستجو کردن…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 5 , تعداد قسمت ها: 128 , سطح: صفر تا صد

این فصل در یک نگاه:

پرداخت درون برنامه ای بازار با کاتلین…

دوره "متخصص" جایگزین دوره های اندروید شد. برای دیدن دوره متخصص اندروید بر روی لینک زیر کلیک کنید : https://b2n.ir/d36082 چرا دوره متخصص جایگزین دیگر دوره های اندروید شده است؟چرا باید دوره…
فصلِ: 8 , تعداد قسمت ها: 62 , سطح: صفر تا صد

این فصل در یک نگاه:

اپلود تصاویر روی سرور نود جی اس-کار با کانال در چت- ساخت کانال-ساخت گروه-تفاوت کانال و گروه-انلاین بودن-ارسال تصاویر در …

  توضیحات کلی مجموعه آموزش اندروید اپلیکیشن چت مشابه تلگرام( با استفاده از Socket IO ): دموی مجموعه را حتما ببینید دراین دوره سعی میشود بسیاری از اپشن هایی که اپلیکیشن موبوگرام داراست ر…
فصلِ: 6 , تعداد قسمت ها: 194 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل آپدیت های مربوط به دوره را قرار میدهیم…

با سلام و خسته نباشد خدمت کلیک سایتی های عزیز در ادامه با توضیحات مختصری درمورد دوره ی react native با ما همراه باشید: React Native چیست؟ قطعا یکی از آرزوهای برنامه نویسان این میباشد که ب…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید