بهترین منابع آموزشی برنامه نویسی فارسی

این وبلاگ برای معرفی بهترین منابع آموزشی برنامه نویسی ساخته شده است

بهترین منابع آموزشی برنامه نویسی فارسی

این وبلاگ برای معرفی بهترین منابع آموزشی برنامه نویسی ساخته شده است

سلام خوش آمدید

آموزش ساخت اسلایدر تصاویر در اپ اندرویدی با زبان kotlin . 

 

  • سورس کد به انتهای آموزش اضافه شد . 

 

در این مقاله ی آموزشی قصد داریم یک اسلایدر تصاویر بسازیم که از viewpager استفاده خواهیم کرد البته زبان برنامه نویسی ما زبان برنامه نویسی جدید کاتلین است . 

ما از indicator یا نقاط مشخص کننده برای اسلایدهای خود استفاده خواهیم کرد تا هم کاربر متوجه شود چند اسلاید وجود دارد و همچنین در کدام اسلاید است . 

 

اگر شما همین آموزش را برای زبان java نیاز دارید ما قبلا یک آموزش برای ساخت اسلایدر در اپلکیشن های اندرویدی ساختیم که میتوانید استفاده کنید . 

 

 

1 - قدم اول ساخت اسلایدر اپ اندرویدی با کاتلین - اضافه کردن وابستگی های مورد نیاز 

 

ما از کتابخانه ی ViewPagerIndicator برای این پروژه استفاده خواهیم کرد  . 

 

خط های زیر را به فایل build.gradle(Module:app) خود اضافه کنید و سپس sync بزنید : 

 

compile ('com.github.JakeWharton:ViewPagerIndicator:2.4.1')  {
        exclude group: 'com.android.support'
        exclude module: 'appcompat-v7'
        exclude module: 'support-v4'
    }

 

2 - قدم دوم ساخت اسلایدر اپ اندرویدی با کاتلین - اضافه کردن تصاویر  

 

چند عدد تصویر نیاز داریم تا به اسلایدر خودمان اضافه کنیم . ما شش عدد تصویر در یک فایل زیپ شده قرار دادیم تا بتوانید سریع دانلود و از انها استفاده کنید . 

 

دانلود تصاویر مورد نیاز 

 

شما باید این تصاویر را در پوشه ی drawable اندروید خود وارد کنید . 

مسیر پوشه ی drawable را در تصویر زیر میتوانید ببینید : 

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

 

3 - قدم سوم ساخت اسلایدر اپ اندرویدی با کاتلین - اضافه کردن کلاس مدل 

 

خب حالا نیاز به یک کلاس مدل داریم که ایجاد میکنیم . یک کلاس جدید از نوع کاتلین ایجاد کنید و نام آنرا ImageModel.kt بزارید و کدهای زیر را داخلش کپی کنید : 

 

/**
 * Created by avasam
 */
class ImageModel {
 
    private var image_drawable: Int = 0
 
    fun getImage_drawables(): Int {
        return image_drawable
    }
 
    fun setImage_drawables(image_drawable: Int) {
        this.image_drawable = image_drawable
    }
}

 

4 - قدم چهارم ساخت اسلایدر اپ اندرویدی - ساخت layout یک اسلاید 

 

یک layout جدید بسازید و نام آنرا slidingimages_layout.xml  قرار دهید سپس کدهای زیر را درون آن کپی کنید 

 

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="1dip" >
 
    <ImageView
        android:id="@+id/image"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:adjustViewBounds="true"
        android:layout_gravity="center"
        android:src="@mipmap/ic_launcher"
        android:scaleType="centerCrop" />
</FrameLayout>

 

5 - قدم پنجم ساخت اسلایدر اپ اندرویدی با کاتلین - ساخت کلاس آداپتر

 

کلاس آداپتر وظیفه دارد داده ها را به viewpager تحویل دهد . 

یک کلاس جدید کاتلین بسازید و نام آنرا SlidingImage_Adapter.kt قرار دهید . 

کدهای زیر را درون آداپتر کپی کنید : 

 

import android.content.Context
import android.os.Parcelable
import android.support.v4.view.PagerAdapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import java.util.ArrayList
 
/**
 * Created by avasam
 */
class SlidingImage_Adapter(private val context: Context, private val imageModelArrayList: ArrayList<ImageModel>) : PagerAdapter() {
    private val inflater: LayoutInflater
 
 
    init {
        inflater = LayoutInflater.from(context)
    }
 
    override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
        container.removeView(`object` as View)
    }
 
    override fun getCount(): Int {
        return imageModelArrayList.size
    }
 
    override fun instantiateItem(view: ViewGroup, position: Int): Any {
        val imageLayout = inflater.inflate(R.layout.slidingimages_layout, view, false)!!
 
        val imageView = imageLayout
                .findViewById(R.id.image) as ImageView
 
 
        imageView.setImageResource(imageModelArrayList[position].getImage_drawables())
 
        view.addView(imageLayout, 0)
 
        return imageLayout
    }
 
    override fun isViewFromObject(view: View, `object`: Any): Boolean {
        return view == `object`
    }
 
    override fun restoreState(state: Parcelable?, loader: ClassLoader?) {}
 
    override fun saveState(): Parcelable? {
        return null
    }
 
}

 

6 - قدم ششم ساخت اسلایدر اپ اندرویدی با زبان کاتلین - بروزرسانی اکتیویتی اصلی یا MainActivity.kt

 

فایل layout مربوط به اکتیویتی اصلی برنامه یا همان activity_main.xml را باز کنید و کدهای زیر را درون آن کپی کنید ( کدهای قبلی را پاک کنید ) : 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    tools:context="com.example.avasam.kotlin_image_slider.MainActivity">
 
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
 
        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentTop="true" />
 
        <com.viewpagerindicator.CirclePageIndicator
            android:id="@+id/indicator"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:gravity="bottom"
            android:padding="10dip"
            app:centered="true"
            app:fillColor="#df0623"
            app:pageColor="#fff"
            app:snap="false" />
    </RelativeLayout>
</RelativeLayout>

 

حالا کدهای درون MainActivity.kt باید به شکل زیر باشد : 

 

import android.os.Handler
import android.support.v4.view.ViewPager
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import com.viewpagerindicator.CirclePageIndicator
import java.util.ArrayList
import java.util.Timer
import java.util.TimerTask
 
class MainActivity : AppCompatActivity() {
    private var imageModelArrayList: ArrayList<ImageModel>? = null
 
    private val myImageList = intArrayOf(R.drawable.harley2, R.drawable.benz2, R.drawable.vecto, R.drawable.webshots, R.drawable.bikess, R.drawable.img1)
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        imageModelArrayList = ArrayList()
        imageModelArrayList = populateList()
 
        init()
 
    }
 
    private fun populateList(): ArrayList<ImageModel> {
 
        val list = ArrayList<ImageModel>()
 
        for (i in 0..5) {
            val imageModel = ImageModel()
            imageModel.setImage_drawables(myImageList[i])
            list.add(imageModel)
        }
 
        return list
    }
 
    private fun init() {
 
        mPager = findViewById(R.id.pager) as ViewPager
        mPager!!.adapter = SlidingImage_Adapter(this@MainActivity, this.imageModelArrayList!!)
 
        val indicator = findViewById(R.id.indicator) as CirclePageIndicator
 
        indicator.setViewPager(mPager)
 
        val density = resources.displayMetrics.density
 
        //Set circle indicator radius
        indicator.setRadius(5 * density)
 
        NUM_PAGES = imageModelArrayList!!.size
 
        // Auto start of viewpager
        val handler = Handler()
        val Update = Runnable {
            if (currentPage == NUM_PAGES) {
                currentPage = 0
            }
            mPager!!.setCurrentItem(currentPage++, true)
        }
        val swipeTimer = Timer()
        swipeTimer.schedule(object : TimerTask() {
            override fun run() {
                handler.post(Update)
            }
        }, 3000, 3000)
 
        // Pager listener over indicator
        indicator.setOnPageChangeListener(object : ViewPager.OnPageChangeListener {
 
            override fun onPageSelected(position: Int) {
                currentPage = position
 
            }
 
            override fun onPageScrolled(pos: Int, arg1: Float, arg2: Int) {
 
            }
 
            override fun onPageScrollStateChanged(pos: Int) {
 
            }
        })
 
    }
 
    companion object {
 
        private var mPager: ViewPager? = null
        private var currentPage = 0
        private var NUM_PAGES = 0
    }
 
}

 

7 - قدم هفتم در ساخت اسلایدر اپ اندرویدی - نگه داشتن اسلاید خودکار 

 

شاید شما نیاز داشته باشید که اسلاید خودکار یا اسلاید شو اتوماتیک را استاپ کنید . برای این هدف از قطعه کد زیر استفاده کنید : 

 

  // Auto start of viewpager
        val handler = Handler()
        val Update = Runnable {
            if (currentPage == NUM_PAGES) {
                currentPage = 0
            }
            mPager!!.setCurrentItem(currentPage++, true)
        }
        val swipeTimer = Timer()
        swipeTimer.schedule(object : TimerTask() {
            override fun run() {
                handler.post(Update)
            }
        }, 3000, 3000)

 

ما از کلاس Timer  استفاده کردیم که برای نمایش مدت زمان هر اسلاید از آن استفاده کنیم . 

زمانی که اسلاید شو اتوماتیک در حال اجرا هست شما میتوانید عمل کشیدن اسلایدر به سمت چپ و راست را داشته باشید. 

در قطعه کد زیر مدت زمان نمایش هر اسلاید سه ثانیه تعریف شده است که شما میتوانید انرا عوض کنید :  منظور همان عدد ۳۰۰۰ است . 

 val swipeTimer = Timer()
        swipeTimer.schedule(object : TimerTask() {
            override fun run() {
                handler.post(Update)
            }
        }, 3000, 3000)

 

 

دانلود سورس کد آماده ی این آموزش 

دانلود سورس کد اسلایدر تصاویر با کاتلین در برنامه نویسی اپلیکیشن های اندرویدی

اتمام مقاله آموزشی


مطالب زیر ممکن است برای شما مفید باشد

 5 دلیل برای یادگیری کاتلین آموزش کار با آرایه ها در زبان کاتلین اطلاعات مفید کاتلین که نباید از دست بدید آموزش متغیرها در کاتلین ، انواع آنها و تبدیل متغیرها چطور یک برنامه نویس موبایل شوید ؟ (راهنمای کامل)

محصولات برگزیده مناسب شما

 دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین دوره آموزش برنامه نویسی اندروید با کاتلین kotlin بصورت پروژه محور دوره ی آموزش پروژه محور ساخت دیجیکالا به همراه اپ و سورس کامل دوره ی آموزش لینوکس اوبونتو

پایان 👍

  • نفس کریمی زاده

سورس کد به انتهای آموزش اضافه شد / دمو ویدیویی به انتهای اموزش اضافه شد 

 

آموزش ساخت سیستم ثبت نام و ورود در PHP و با پایگاه داده MySQL

 

در این مقاله ی آموزشی قراره به شما یاد بدم که با استفاده از PHP چطور میتوانید یک سیستم ثبت نام کاربران بسازید . همچنین کاربر بتواند عمل ورود و خروج را انجام دهد و همچنین یاد بگیریم چطور بخشی از وب سایت را فقط برای کاربرانی که ثبت نام کردن و وارد شدن ، نمایش دهیم . 

در این مقاله از زبان برنامه نویسی PHP و پایگاه داده MYSQL استفاده خواهیم کرد . 

اولین کاری که باید انجام دهید تنظیم کردن یک پایگاه داده است : 

یک پایگاه داده جدید بسازید و نام آنرا registration قرار دهید در این پایگاه داده یک جدول جدید بسازید به نام users . جدول users باید فیلدهای زیر را داشته باشد : 

  • id
  • username  -  varchar(100)
  • email  -  varchar(100)
  • password  -  varchar(100)

 

شما میتوانید پایگاه داده و جدول های درون آن و همچنین فیلدهای درون جدول را با استفاده از برنامه PHPMyAdmin بسازید . اگر از XAMPP استفاده میکنید در مرورگرخود به آدرس localhost/phpmyadmin بروید . 

 

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

 

آموزش ساخت ثبت نام و ورود کاربران با استفاده از php و mysql

 

اگر قصد دارید بدون استفاده از phpmyadmin و با استفاده از کدهای زبان sql این کار را انجام دهید میتوانید بصورت زیر جدول را بسازید : 

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `username` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

 

اتمام ساخت پایگاه داده ثبت نام و ورود با PHP - MySQL

 

حالا باید یک دایرکتوری ( فولدر ) جدید بسازیم که مربوط به پروژه ی ما میباشد و قرار است فایل های php ما درون آن قرار بگیرد پس در روت اصلی وب سرور مجازی که استفاده میکنیم ( فرض ما این است که شما از xampp استفاده میکنید ) یک دایرکتوری جدید به نام registration  میسازیم . مسیر اصلی روت در xampp درون پوشه ی htdocs میباشد . 

بعد از ساختن پوشه ی registration فایل های php زیر را درون آن بسازید : 

آموزش ثبت نام و ورود در php و mysql 

اگر در دیدن تصویر بالا مشکل دارید من لیست فایل ها را دوباره اینجا نوشتم : 

  • errors.php
  • index.php
  • login.php
  • register.php
  • server.php
  • style.css

 

دایرکتوری یا پوشه ی پروژه را درون یک ادیتور یا ide وب مثل phpstorme یا sublime یا atom باز کنید . 

 

ثبت نام کاربر با استفاده از PHP و MYSQL

 

فایل  register.php را باز کنید و کدهای زیر را درون آن کپی کنید : 

 

register.php : 

 

<?php include('server.php') ?>
<!DOCTYPE html>
<html>
<head>
  <title>Registration system PHP and MySQL</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
  <div class="header">
  	<h2>Register</h2>
  </div>
	
  <form method="post" action="register.php">
  	<?php include('errors.php'); ?>
  	<div class="input-group">
  	  <label>Username</label>
  	  <input type="text" name="username" value="<?php echo $username; ?>">
  	</div>
  	<div class="input-group">
  	  <label>Email</label>
  	  <input type="email" name="email" value="<?php echo $email; ?>">
  	</div>
  	<div class="input-group">
  	  <label>Password</label>
  	  <input type="password" name="password_1">
  	</div>
  	<div class="input-group">
  	  <label>Confirm password</label>
  	  <input type="password" name="password_2">
  	</div>
  	<div class="input-group">
  	  <button type="submit" class="btn" name="reg_user">Register</button>
  	</div>
  	<p>
  		Already a member? <a href="login.php">Sign in</a>
  	</p>
  </form>
</body>
</html>

 

تا کنون هیچ چیز پیچیده ای وجود ندارد . 

 

فقط چندتا نکته وجود دارد که باید به آنها توجه کنید : 

اولا که action فرم در کدهای بالا روی فایل register.php میباشد . معنی این بخش این است که وقتی فرم ارسال میشود یا روی ثبت نام کلیک میشود داده های فرم به خود صفحه ی register.php ارسال میشود نه جای دیگری . 

بخشی که وظیفه ی دریافت داده های فرم را دارد در server.php نوشته شده است به همین علت ما در بالای کدهای خود فایل server.php را اینکلود کرد یم . 

توجه کنید که ما فایل errors.php را هم اینکلود کردیم که وظیفه ی نمایش خطاها را دارد ، جلوتر آنرا توضیح خواهیم داد . 

 

در کدهای بالا درون تگ head ما یک فایل استایل به نام style.css را به صفحه ی خودمان لینک کردیم . style.css  شامل کدهای CSS مربوط به استایل صفحه ی ما است . کدهای زیر را درون style.css کپی کنید : 

* {
  margin: 0px;
  padding: 0px;
}
body {
  font-size: 120%;
  background: #F8F8FF;
}

.header {
  width: 30%;
  margin: 50px auto 0px;
  color: white;
  background: #5F9EA0;
  text-align: center;
  border: 1px solid #B0C4DE;
  border-bottom: none;
  border-radius: 10px 10px 0px 0px;
  padding: 20px;
}
form, .content {
  width: 30%;
  margin: 0px auto;
  padding: 20px;
  border: 1px solid #B0C4DE;
  background: white;
  border-radius: 0px 0px 10px 10px;
}
.input-group {
  margin: 10px 0px 10px 0px;
}
.input-group label {
  display: block;
  text-align: left;
  margin: 3px;
}
.input-group input {
  height: 30px;
  width: 93%;
  padding: 5px 10px;
  font-size: 16px;
  border-radius: 5px;
  border: 1px solid gray;
}
.btn {
  padding: 10px;
  font-size: 15px;
  color: white;
  background: #5F9EA0;
  border: none;
  border-radius: 5px;
}
.error {
  width: 92%; 
  margin: 0px auto; 
  padding: 10px; 
  border: 1px solid #a94442; 
  color: #a94442; 
  background: #f2dede; 
  border-radius: 5px; 
  text-align: left;
}
.success {
  color: #3c763d; 
  background: #dff0d8; 
  border: 1px solid #3c763d;
  margin-bottom: 20px;
}

 

حالا اگر صفحه را ریفرش بزنید فرم کمی استایل میگیرد و زیباتر به نظر میرسد . 

 

خب حالا وقت آن رسیده است داده های ثبت نامی را دریافت کنیم و آنها را در پایگاه داده MYSQL خودمان ذخیره کنیم همانطور که قبلا گفتیم دریافت اطلاعات فرم ثبت نامی را درون فایل server.php انجام خواهیم داد . 

 

فایل server.php را باز کنید و کدهای زیر را درون آن کپی کنید : 

 

<?php
session_start();

// initializing variables
$username = "";
$email    = "";
$errors = array(); 

// connect to the database
$db = mysqli_connect('localhost', 'root', '', 'registration');

// REGISTER USER
if (isset($_POST['reg_user'])) {
  // receive all input values from the form
  $username = mysqli_real_escape_string($db, $_POST['username']);
  $email = mysqli_real_escape_string($db, $_POST['email']);
  $password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
  $password_2 = mysqli_real_escape_string($db, $_POST['password_2']);

  // form validation: ensure that the form is correctly filled ...
  // by adding (array_push()) corresponding error unto $errors array
  if (empty($username)) { array_push($errors, "Username is required"); }
  if (empty($email)) { array_push($errors, "Email is required"); }
  if (empty($password_1)) { array_push($errors, "Password is required"); }
  if ($password_1 != $password_2) {
	array_push($errors, "The two passwords do not match");
  }

  // first check the database to make sure 
  // a user does not already exist with the same username and/or email
  $user_check_query = "SELECT * FROM users WHERE username='$username' OR email='$email' LIMIT 1";
  $result = mysqli_query($db, $user_check_query);
  $user = mysqli_fetch_assoc($result);
  
  if ($user) { // if user exists
    if ($user['username'] === $username) {
      array_push($errors, "Username already exists");
    }

    if ($user['email'] === $email) {
      array_push($errors, "email already exists");
    }
  }

  // Finally, register user if there are no errors in the form
  if (count($errors) == 0) {
  	$password = md5($password_1);//encrypt the password before saving in the database

  	$query = "INSERT INTO users (username, email, password) 
  			  VALUES('$username', '$email', '$password')";
  	mysqli_query($db, $query);
  	$_SESSION['username'] = $username;
  	$_SESSION['success'] = "You are now logged in";
  	header('location: index.php');
  }
}

// ... 

 

خب ما از Session های php استفاده میکنیم تا متوجه شویم که کاربر عمل لاگین یا ورود را انجام داده است یا نه ! خب به همین خاطر session_start() را نوشتیم . 

کامنت های موجود در کدهای بالا همه چیز را مشخص میکند ولی خب چند نکته ی دیگه هم اینجا باید بدانید 

ما از طریق یک شرط بررسی میکنیم که آیا دکمه ی reg_user  در فرم ثبت نام کلیک شده است یا نه . 

به همین خاطر در فرم خودمان برای دکمه ی ثبت نام خاصیت name تعریف کردیم و مقدار انرا reg_user  قرار دادیم تا قابلیت شناسایی داشته باشد . 

تمام داده های کاربر دریافت میشود و بررسی میشود تا صحت آنها ارزیابی شود . همچنین فیلد پسورها بررسی میشود تا یکسان باشند ( منظور رمز و تکرار رمز است که باید یکسان باشند )

اگر هیچ خطایی رخ ندهد . داده ها درون جدول users در پایگاه داده ذخیره میشود البته پسورد همینطوری ذخیره نمیشود و برای امنیت بیشتر مقدار آن هش یا رمزگذاری میشود . این کار را به این خاطر انجام میدهیم تا اگر حتی هکر به پایگاه داده دسترسی داشت ، پسورد واقعی دستش نرسد ! 

خب حالا اگر خطایی وجود داشته باشد هیچ چیز نمایش داده نخواهد شد چون errors.php  ما خالی است ! برای اینکه خطاها را نمایش دهیم کدهای زیر را کپی و درون فایل errors.php پیست کنید : 

<?php  if (count($errors) > 0) : ?>
  <div class="error">
  	<?php foreach ($errors as $error) : ?>
  	  <p><?php echo $error ?></p>
  	<?php endforeach ?>
  </div>
<?php  endif ?>

 

خب وقتی ثبت نام یک کاربر با موفقیت انجام میگیرد بصورت خودکار عمل لاگین یا ورود هم برای او انجام میگیرد و به صفحه ی index.php ریدایرکت میشود . 

 

خب تا اینجای کار ، ما ثبت نام یک کاربر را بصورت روان با php و mysql انجام دادیم و به همین سادگی تمام شد . حالا بریم سراغ ورود یا لاگین : 

 

ورود کاربر توسط php : 

 

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

 

ورود کاربران راحت تر از پیاده سازی ثبت نام آنهاست کدهای زیر را درون فایل login.php کپی کنید : 

 

<?php include('server.php') ?>
<!DOCTYPE html>
<html>
<head>
  <title>Registration system PHP and MySQL</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
  <div class="header">
  	<h2>Login</h2>
  </div>
	 
  <form method="post" action="login.php">
  	<?php include('errors.php'); ?>
  	<div class="input-group">
  		<label>Username</label>
  		<input type="text" name="username" >
  	</div>
  	<div class="input-group">
  		<label>Password</label>
  		<input type="password" name="password">
  	</div>
  	<div class="input-group">
  		<button type="submit" class="btn" name="login_user">Login</button>
  	</div>
  	<p>
  		Not yet a member? <a href="register.php">Sign up</a>
  	</p>
  </form>
</body>
</html>

 

همانطور که عمل ثبت نام کاربر را درون فایل server.php انجام دادیم ما قصد داریم کدهای عمل ورود را هم درون این فایل بنویسیم 

فایل server.php را باز کنید و کدهای زیر را به انتهای آن اضافه کنید : 

نکته : کدهای قبلی را پاک نکنید فقط کدهای زیر را به انتهای آن کپی کنید و ذخیره کنید 

 

// ... 

// LOGIN USER
if (isset($_POST['login_user'])) {
  $username = mysqli_real_escape_string($db, $_POST['username']);
  $password = mysqli_real_escape_string($db, $_POST['password']);

  if (empty($username)) {
  	array_push($errors, "Username is required");
  }
  if (empty($password)) {
  	array_push($errors, "Password is required");
  }

  if (count($errors) == 0) {
  	$password = md5($password);
  	$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
  	$results = mysqli_query($db, $query);
  	if (mysqli_num_rows($results) == 1) {
  	  $_SESSION['username'] = $username;
  	  $_SESSION['success'] = "You are now logged in";
  	  header('location: index.php');
  	}else {
  		array_push($errors, "Wrong username/password combination");
  	}
  }
}

?>

 

خب اینجا هم فرم پر شده بررسی میشود تا مطمئن شود داده ها بصورت صحیح وارد شده است یا نه ، سپس اطلاعات وارد شده با کاربران موجود در پایگاه داده مقایسه میشود . اگر با مشخصات وارد شده یعنی با ایمیل و رممز ورود شخصی وجود داشت عمل ورود انجام میگیرد و کاربر به صفحه ی index.php ریدایرکت میشود . 

 

خب حالا نوبت این رسیده ببینیم داخل صفحه ی index.php چه چیزی رخ میدهد . فایل index.php را باز کنید و کدهای زیر را درونش کپی کنید : 

<?php 
  session_start(); 

  if (!isset($_SESSION['username'])) {
  	$_SESSION['msg'] = "You must log in first";
  	header('location: login.php');
  }
  if (isset($_GET['logout'])) {
  	session_destroy();
  	unset($_SESSION['username']);
  	header("location: login.php");
  }
?>
<!DOCTYPE html>
<html>
<head>
	<title>Home</title>
	<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<div class="header">
	<h2>Home Page</h2>
</div>
<div class="content">
  	<!-- notification message -->
  	<?php if (isset($_SESSION['success'])) : ?>
      <div class="error success" >
      	<h3>
          <?php 
          	echo $_SESSION['success']; 
          	unset($_SESSION['success']);
          ?>
      	</h3>
      </div>
  	<?php endif ?>

    <!-- logged in user information -->
    <?php  if (isset($_SESSION['username'])) : ?>
    	<p>Welcome <strong><?php echo $_SESSION['username']; ?></strong></p>
    	<p> <a href="index.php?logout='1'" style="color: red;">logout</a> </p>
    <?php endif ?>
</div>
		
</body>
</html>

 

شرط اول بررسی میکند تا ببیند کاربر آیا قبلا وارد شده است یا نه ، اگر وارد نشده باشد به صفحه ی login هدایت میشود . این شرط را به این دلیل گذاشتیم که این صفحه یا بخش فقط برای کاربرانی قابل دسترسی باشد که عمل ورود را انجام داده باشند  اگر دوست دارید با php کاری کنید بخشی از سایت شما فقط برای اعضا نمایش داده شود اساس کار همین است . 

شرط دوم بررسی میکند تا ببیند کاربر وارد شده آیا روی دکمه ی logout یا خروج کلیک کرده است یا نه ؟ اگر کلیک کرده باشد عمل خروج را انجام میدهد و کاربر را به صفحه ی login هدایت میکند . 

 

و به همین سادگی شما سیستم ثبت نام و ورود را نوشتید تبریک میگوئیم . 

 

 

سورس کد کامل این دوره را میتوانید از اینجا دانلود کنید : 

 

تمام 

 


مطالب زیر ممکن است برای شما مفید باشد

 composer چیست و چه کاربردی داره ؟ جانگو یا لاراول ؟ برنامه نویسان وب بخوانند کدایگنایتر یا لاراول ؟ کدام فریمورک پی اچ پی تماس با ما مفاهیم موتور جستجو و آموزش ساخت موتور جستجو با PHP

محصولات برگزیده مناسب شما

 دوره پروژه محور ساخت فروشگاه بامیلو با لاراول دوره ی آموزش کامل زبان پی اچ پی ( PHP ) دوره ی آموزش ساخت فریمورک برای پی اچ پی با PHP MVC دوره ی پروژه محور ساخت هتلداری با php mvc

پایان 👍

  • نفس کریمی زاده

شاید در ابتدا اینطوری به نظر بیاد که وردپرس ضعیف هست و ممکنه امنیت وب سایتی که شما میسازید را به خطر بیاندازد یا وردپرس محدود است و امکان پیاده سازی برخی وب سایت ها با آن ممکن نباشد

در حالیکه اینطور نیست و شرکت های بزرگی درجهان هستند که وب سایت خودشان را با وردپرس اداره میکنند

هر چند نوشتن یک سایت با زبان خالی php یا یکی از فریمورکهای آن مطمئنا پرفرمنس و کارآیی خیلی بالایی دارد ولی سادگی استفاده از وردپرس و وجود افزونه ها و ابزارهای متنوع بسیار زیاد باعث میشود هنوزم که هنوز است برخی ها وردپرس را ترجیح دهند . 

در کل ۸۱% وب سایت های دنیا با php ران میشوند (منبع) که در بین cms هایی که با php پیاده سازی شده اند وردپرس در رتبه ی اول با ۷۸,۶ درصد استفاده است ( منبع )  . 

سعی من در این مطلب این بوده که بهترین آموزش گام به گام برای ساخت سایت با وردپرس رو برای کسانی که کد نویسی نمیدونند ارائه بدم و امید وارم که خوشتون بیاد و براتون مفید بوده باشه.

 

مواردی که در این آموزش به آنها میپردازم:

 

  • انتخاب و خرید یک نام دامنه
  • انتخاب بهترین هاست برای وردپرس
  • اتصال دامنه و هاست
  • مقدمات نصب وردپرس (ساخت دیتابیس و آپلود فایلها)
  • آموزش نصب وردپرس
  • آموزش نصب پلاگین های وردپرس
  • آموزش نصب پوسته وردپرس
  • آموزش ارسال نوشته در وردپرس

 

برای شروع آموزش بهتره اول یکسری توضیحات و تعاریف رو بگم تا راحتتر بتونیم ادامه بدیم.

 

هزینه سایتی که خودمون میخوایم بسازیم چقدر هست؟

 

با توجه به وبسایتی که میخواید با وردپرس راه اندازی کنید، ممکنه هزینه ای بین ۱۰۰ هزار تومان تا ۳۰ میلیون تومان (که مطمئنا در اون حالت درامد شما از سایت هم قابل توجه هست) براتون داشته باشه. هزینه ها مربوط میشه به شرکت های هاستینگ و ارائه دهنده دامنه و اگر نیاز به سفارشی سازی بیشتری داشته باشید باید هزینه سفارشی سازی رو هم پرداخت کنید به برنامه نویسی که این کار رو میکنه.
در کل هزینه ای که برای شما در حالت عادی خواهد داشت چیزی کمتر از ۱۰۰ هزار تومان هست که در ادامه آموزش متوجه خواهید شد.

 

چه چیزهایی نیازدارم تا وبسایت خودم رو بسازم؟

 

برای ساخت وبسایت به موارد زیر نیاز داریم که طی آموزش موارد رو مهیا میکنیم:

 

  • یک دامنه ی اینترنتی 
  • یک هاست ( البته برای شروع خوبه اگر میخواهید زیاد پول بدهید میتونید یک vps یا سرور ... هم تهیه کنید )
  • دانلود فایل نصب wordpress

 

هاست و دامنه چیست؟

 

برای اینکه وبسایت ما در کل اینترنت به صورت ۲۴ ساعته قابل دسترس باشه نیاز به کامپیوترهایی داریم که ۲۴ ساعته روشن  و متصل به اینترنت باشند. برای همین یکسری شرکت ها کامپیوترهایی با این ویژگی در اختیار کاربرها قرار میدند که به این شرکتها، شرکتهای هاستینگ یا میزبانی گفته میشه . فضا و امکاناتی که از این کامپیوترها در اختیار شما قرار می گیرد بهش هاست گفته میشود که فایلهای مورد نیاز ما قراره در این هاست میزبانی بشه ( فایل های شما درون آنها ریخته بشه مثل هارد و فلش و ...) .

دامنه یا Domain Name اسمی هست که کاربران سایت ما قرار است با وارد کردن اون در مرورگرهاشون سایتی که ما ساختیم رو ببینند. پس کاربر با زدن آن نام در مرورگر خود بصورت خودکار به هاست ما هدایت میشود و هر چیزی که روی آن قرار داده باشیم برای کاربران اینترنت قابل رویت است .

 

قدم اول: انتخاب یک نام دامنه

 آموزش ساخت و طراحی وب سایت بدون نیاز به برنامه نویسی با وردپرس - آموزش انتخاب دامنه برای وردپرس

نام دامنه ، آدرس اینترنتی وب سایت شما میباشد .  برای مثال دامنه وبسایت آواسام هست : avasam.ir و دامنه وبسایت یاهو هست : yahoo.com

 

شما هم باید برای سایت خودتون یک دامنه انتخاب کنید. داشتن دامنه مستلزم پرداخت هزینه سالیانه است .  یعنی شما باید هر ساله دامنه  مورد نظرتون رو تمدید کنید و مبلغ آنرا پرداخت کنید .

نوع دامنه ها با یک . در آخر آن مشخص میشود مثلا ir یا com یا net و ... هر کدام یک معنی دارند مثلا دامنه .com برای وبسایتهای عمومی و یا تجاری خوبه. دامنه  ir برای به معنی این است که این دامنه متعلق به ایران هست .

 

برای خرید دامنه یا ثبت دامنه کافیه یک جستجوی ساده ی گوگل بکنید ، صدها وب سایت معتبر ایرانی آماده ثبت دامنه ی جدید برای شما هستند . در انتخاب وب سایتی که برای شما دامنه ثبت نام میکند از اصالت آن اطمینان حاصل کنید . برای اطمینان حاصل کردن از یک وب سایت روش های زیر را میتوانید استفاده کنید : 

 

  • اصالت دامنه را بررسی کنید این کار از طریق جستجوی whois انجام میگیرد و شما میتوانید نام ثبت کننده ی دامنه و ایمیل و شماره تماس ایشان را ببینید پس از اصل بودن دامنه ی جایی که میخواهید دامنه بخرید اطمینان حاصل کنید . 
  • رتبه ی سایت را در الکسا بررسی کنید باید رتبه ی خوبی در بین وب سایت های ایرانی داشته باشد معمولا به سایت هایی که رتبه ی الکسای بالای پنج هزار دارند زیاد اعتماد نکنید .
  • نماد اعتماد و لوگوی ساماندهی آن وب سایت ( اگر وجود داشته باشد ) را بررسی کنید و از اصالت آن اطمینان حاصل کنید .
  • نام سایتی که میخواهید از آنها سرویس تهیه کنید را در گوگل سرچ کنید ، میتوانید از عبارت کلاهبرداری ، دزدی ، اعتماد و ... در ابتدای نام آن وب سایت سرچ کنید تا اگر موضوعی بصورت مقاله یا تاپیک در مورد آن وب سایت وجود داشته باشد سریعا برای شما لیست شود مثلا من میخواهم از شرکت x خرید کنم در گوگل سرچ میکنم کلاهبرداری x و اگر هیچ نتیجه ای پیدا نشد به احتمال خیلی زیاد اینجا جای معتبری است و قبلا کلاه کسی را برنداشته است . 

 

 

قدم دوم: خرید هاست برای وردپرس

آموزش ساخت و طراحی وب سایت با وردپرس بدون نیاز به برنامه نویسی - آموزش خرید هاست برای وردپرس

 

بعد از اینکه شما یک دامنه مثل domain.ir یا domain.com  یا هر چیز دیگری را ثبت کردید ، باید یک هاست تهیه کنید ، هاست فضایی از یک سرور در اینترنت است که شما فایل های سایتتان را روی آن قرار میدهید تا افرادی که در اینترنت هستند بتوانند از آنها استفاده کنند ( بالاتر توضیح دادیم ) . 

 

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

 

  • هاست لینوکس یا ویندوز تفاوتی ندارد مهم این است php روی آن نصب باشد 
  • میزان ترافیک ماهانه میزان داده هایی است که هر ماه از هاست شما دریافت/ارسال میگردد 
  • میزان فضای هاست ، میزان فضایی است که میتوانید درون ان فایل بریزید مثل فضای هارد یا فلش ولی تفاوتش اینه بصورت انلاین و همیشه متصل به اینترنت است 
  • پشتیبانی بعد از خرید هاست مهم است و میتوانید از پشتیبانی کمک بگیرید تا هاست خود را راه اندازی و استفاده کنید
  • قیمت هاست را با دیگر سایت ها مقایسه کنید تا یه وقت پول اضافی ندید 

 

قدم سوم: اتصال دامنه و هاست

آموزش اتصال DNS هاست و دامنه - آموزش طراحی وب با وردپرس بدون نیاز به برنامه نویسی

برای اینکه یک هاست و یک دامنه به هم دیگر متصل شوند باید DNS های آنها یکسان و تنظیم شده باشد . DNS ها را مثل نقطه ی اتصال هاست و دامنه در نظر بگیرید . 

 

برای تنظیم دامنه باید DNS های هاست خریداری شده را در تنظیمات دامنه وارد کنید. این اطلاعات در ایمیل ارسالی هاست باید وجود داشته باشد. اگر وجود نداشت، بعد از ورود به پنل کاربری از جایی که هاست خریدید در قسمت  "مدیریت سرویس ها > سرویس های من" در لیست سرویس هایتان روی مشخصات سرویس مورد نظر کلیک کنید .

 

دی ان اس ها را به ترتیب وارد کرده و بر روی اعمال تغیرات کلیک کنید. معمولا ۴۸ ساعت زمان لازم هست که شما نتیجه این تغییر رو ببینید ولی در عمل در حدود یک ساعت یا حتی چند دقیقه طول میکشد . 

خب شما تا اینجا دامنه و هاست دارید . حالا آماده هستید تا وردپرس نصب کنید خیلی راحت ! 

 

قدم چهارم: مقدمات نصب وردپرس

 

برای نصب وردپرس ما تعدادی کار رو باید ابتدا انجام بدیم:

  • دانلود و آپلود فایل وردپرس
  • ساخت دیتابیس در سی پنل

 

 

دانلود فایل وردپرس و آپلود آن به هاست

 

آخرین نگارش وردپرس رو میتونید از وبسایت وردپرس دانلود کنید. برای اینکار در سایت وردپرس بر روی دکمه Get WordPress کلیک کنید و از صفحه باز شده بر روی دانلود کلیک کنید.

آموزش دانلود فایل وردپرس

بعد از دانلود وردپرس حالا نوبت به آپلود ( آپلود یعنی ارسال فایل به سمت اینترنت ) اون به هاستی که خرید کردیم میرسه . برای این کار در پنل کاربری هاست از قسمت مدیریت سرویس (که قبلا توضیح داده شد) بر روی “ورود به کنترل پنل هاست” کلیک کنید تا صفحه زیر رو ببینید.

 

بر روی File Manager کلیک کنید تا قسمت فایل منیجر برای شما باز بشه.

آموزش نصب وردپرس بصورت تصویری - ساخت سایت بدون کدنویسی

بر روی public_html کلیک کنید تا وارد فولدر اصلی سایت بشید.

آموزش نصب وردپرس بصورت تصویری - اموزش ساخت سایت بدون برنامه نویسی

گزینه آپلود رو انتخاب کرده و فایل دانلود شده از سایت وردپرس رو انتخاب و آپلود کنید. بعد از آپلود فایل باید فایل رو از حالت زیپ خارج کنید که برای این کار بر روی فایل کلیک کرده و گزینه extract رو انتخاب کنید.

آموزش طراحی وب بدون نیاز به برنامه نویسی - آموزش نصب وردپرس تصویری

بعد از اینکه فایل رو extract  کردید، متوجه میشید که کل فایلها به فولدری به نام wordpress کپی شده . برای اینکه سایت وردپرسی ما در آدرس اصلی دامنه باشه (بدون پسوند و پیشوند) باید فایلها رو بیاریم به فولدر اصلی یعنی public_html. برای اینکار در داخل فولدر wordpress تمام فایلها رو انتخاب کرده و گزینه move رو کلیک کنید.

آموزش طراحی وب سایت بدون نیاز به برنامه نویسی - آموزش نصب وردپرس بصورت تصویری

در تصوریر بالا باید کلمه wordpress قبل از کلیک بر روی Move Files حذف شود.

 

الان فایلهای وردپرس ما آماده نصب هستند و اگر شما آدرس دامنه ای که خریدید رو در مروگر وارد کنید باید با صفحه نصب وردپرس مواجه بشید. فقط یک مرحله از نصب وردپرس فاصله داریم و اون هم ساخت دیتابیس در cpanel هست.

 

ساخت دیتا بیس در سی پنل (cpanel)

 

در مرحله بعد در قسمت ساخت دیتابیس جدید نام دلخواهی برای دیتابیس وارد کنید . روی دکمه Create Database بزنید تا دیتابیس جدید شما ساخته شود ...

آموزش ساخت پایگاه داده وردپرس در سی پنل  - آموزش راه اندازی وردپرس بصورت تصویری

بعد از ساخته شدن دیتابیس به شما اعلام میشود که دیتابیس ( پایگاه داده ) با موفقیت ساخته شد .دوباره به صفحه ی پایگاه داده برمیگردیم چون باید کاربر جدید تعریف کنیم تا بتونیم با پایگاه داده کار کنیم .

آموزش ساخت پایگاه داده وردپرس در سی پنل - آموزش نصب وردپرس در cpanel 

برای ساخت کاربر دیتابیس در قسمت ساخت کاربر جدید مشخصات کاربر جدید رو وارد کرده و Create User را کلیک کنید .

آموزش ساخت پایگاه داده در cpanel برای وردپرس - آموزش طراحی سایت با وردپرس بدون نیاز به برنامه نویسی

بعد از ساخت دیتابیس و کاربر دیتابیس باید این کاربر به دیتابیس ساخته شده دسترسی داشته باشه. برای این کار در قسمت مربوط که در تصویر میبینید کاربر و دیتابیسی که ساختید را انتخاب کنید و Add را کلیک کنید.

آموزش ساخت پایگاه داده وردپرس در cpanel - آموزش ساخت کاربر جدید در cpanel برای دیتابیس

بعد از آن وارد صفحه ای میشوید که از شما بابت دسترسی های این کاربر در دیتابیس میپرسد. بر روی All Privileges را تیک زده و بر روی دکمه ادامه کلیک کنید.

آموزش ساخت پایگاه داده در cpanel برای وردپرس - آموزش نصب و راه اندازی وردپرس بصورت تصویری

دیتابیس شما با موفقیت ساخته شد.

 

الان باید بریم سراغ مراحل معروف نصب ۵ دقیقه ای وردپرس...

 

قدم پنجم: نصب وردپرس

آموزش نصب و راه اندازی وردپرس تصویری

الان نوبت به نصب ورد پرس میرسه . برای اینکار آدرس سایت خودتون رو در مرورگر بزنید تا مراحل نصب وردپرس نمایش داده شود .

در مرحله اول زبان فارسی رو انتخاب کنید و بر روی ادامه کلیک کنید . در صفحه بعدی توضیحاتی قبل از تنظیمات نصب ظاهر میشه که ما همه موارد رو آماده کردیم .

آموزش نصب وردپرس بصورت تصویری - آموزش طراحی سایت بدون نیاز به کدنویسی و یا برنامه نویسی

در مرحله بعد با توجه به قدم های قبلی شما با تمام موارد آشنا هستید و فقط کافیه اطلاعات خواسته شده در مورد دیتابیس که در قدم قبلی ساخته شد رو در فرم پر کنید.

 

  • نام پایگاه داده: همون اسم دیتابیس که در قدم قبلی ساختیم
  • نام کاربری: همون اسم کاربری که به دیتابیس وصل کردیم و دسترسی دادیم
  • رمز: رمز کاربر دیتابیس
  • میزبان: localhost
  • پیشوند جدول: یک عبارت 3 یا 4 حرفی بی معنی از حروف . برای امینیت دیتابیس استفاده میشه. حتما عوضش کنید

 

در مرحله بعد

 

  • عنوان سایت: اسم سایتی که در حال ساختن اون هستید
  • نام کاربری: یک نام کاربری دلخواه برای ورود به سایت خودتون(از کلمه adminو یا اسم سایتتون استفاده نکنید.)
  • رمز: تعریف یک رمز پیچیده برای ورود به سایت خودتون
  • ایمیل: ایمیلی که برای مدیر سایت هست و تمام اطلاعات سایت برای این ایمیل ارسال خواهد شد.
  • نمایش به موتورهای جستجو: اگر تیک بزنید سایت شما در گوگل ثبت نخواهد شد

 

بر روی "راه اندازی وردپرس" کلیک کرده و صبر کنید تا وردپرس نصب شود .

بعد از نصب بر روی "ورود" کلیک کنید تا صفحه ورود برای شما نمایش داده شود. نام کاربری و رمز عبور که در هنگام نصب وردپرس تعریف کردید رو وارد کنید تا وارد قسمت مدیریت سایتتون بشید.

 

تبریک میگم شما با موفقیت وردپرس رو نصب کردید 

 

الان میتونید با وارد کردن آدرس دامنه در مرورگر اینترنت ، سایت خودتان را ببینید . 

در قدم های بعدی میریم سراغ نصب پلاگین، پوسته  و ارسال مطلب روی سایت ...

 

 

قدم ششم: نصب افزونه های وردپرس

 

در ادامه مطلب "ساخت سایت با وردپرس" قبل از اینکه بریم سراغ نصب افزونه های وردپرس ابتدا در مورد خود افزونه ها توضیح میدهیم تا متوجه شوید افزونه چیست ؟ 

بعد از نصب وردپرس ممکن است امکانات جدیدی نیاز داشته باشید این امکانات با استفاده از افزونه ها قابل پیاده سازی است و بخاطر وجود افزونه ها وردپرس با این سرعت توسعه یافته است . این افزونه ها توسط برنامه نویسان وب در سراسر جهان نوشته میشه و توسط تیمی از  مترجمین علاقمند به صورت داوطلبانه ترجمه میشه که همه میتونند عضو تیم ترجمه باشند و یا حتی بهتر از اون، یک پلاگین برای وردپرس بنویسند .

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

برای مثال ما میخواهیم تاریخ در سایت ما به صورت شمسی نمایش داده بشه و نه میلادی ، برای اینکار میتونید یک افزونه شمسی ساز نصب کنیم. یا اینکه  میخوایم فرم های مختلف در سایت داشته باشیم تا کاربران بتونن با ما تماس بگیرند .

من طریقه نصب افزونه ها رو با استفاده از افزونه تاریخ شمسی، آموزش میدم. توجه کنید که مراحل نصب افزونه ها همه دقیقا مثل هم هستند و تفاوت در تنظیمات هر افزونه است که به نسبت کاری که باید انجام بده متفاوت هست.

 

آموزش نصب افزونه تاریخ شمسی

 

برای نصب افزونه شمسی باید ابتدا وارد صفحه افزودن افزونه ها بشید که در تصویر زیرمشاهده میکنید:

آموزش نصب افزونه در وردپرس بصورت تصویری - آموزش طراحی وب سایت بدون کدنویسی با وردپرس

برای نصب افزونه وردپرس در قسمت افزونه ها بر روی افزودن کلیک کنید تا صفحه جستجوی افزونه نمایش داده شود. (قسمت ۱ و ۲)

برای جستجوی افزونه در قسمت جستجو نام افزونه مورد نظرتون رو بنویسید و اینتر بزنید تا افزونه های مربوط نمایش داده بشه (قسمت ۳)

در کادر مربوط به افزونه مورد نظر، اسم افزونه (قسمت ۴) و مشخصات نوشته شده . ستاره های نمایش داده شده برای هر افزونه (قسمت ۵) نشان دهنده میزان رضایت از افزونه است و عددی که جلوی اون ثبت شده نشان دهنده تعداد افراد رای دهنده است.

در انتخاب پلاگین ها علاوه بر در نظر گرفتن میزان امتیاز افزونه حتما به تعداد نصب هم دقت کنید. برای مثال شاید افزونه ای ۵۰۰,۰۰۰ نصب داره ولی امتیازش پایینه، باید به این موضوع دقت کنید که ۵۰۰.۰۰۰ نفر دارن از این افزونه استفاده میکنن که اگر واقعا ناراضی بودن حذفش میکردن!! پس حتما هر دو مورد رو در نظر بگیرید.

برای نصب افزونه بر روی “هم اکنون نصب کن” کلیک کنید. (قسمت ۶)

 

احتمالا ممکنه فرمی ظاهر بشه و از شما اطلاعات FTP بخواد. این اطلاعات درحالت عادی به این صورت هست:

 

  • FTP Host: (به جای your-domain نام دامنه خودتون رو بنویسید) ftp.your-domain.com
  • FTP User: نام کاربری cPanel
  • FTP Pass: رمز عبور cPanel

 

نام کاربری و رمز عبور cPanel در قسمت مدیریت سرویس هاست شما که در قدم دوم خریداری کردید وجود داره. اطلاعات رو وارد کرده و ادامه دهید.

بعد از نصب موفق افزونه به شما اطلاع داده میشه و شما باید افزونه رو فعال کنید. بعد از فعال کردن افزونه گزینه ای در منو سمت چپ افزونه اضافه میشه که میتونید از اونجا تنظیمات لازم رو انجام بدید.

 

 

مراحل نصب تمام افزونه ها به همین شکل امکان پذیره. شاید بعضی از افزونه ها نیاز به صفحه مدیریت نداشته باشن و یا صفحه مدیریت اون افزونه در زیر مجموعه گزینه های عمومی مثل تنظیمات باشه.

 

قدم هفتم: نصب پوسته وردپرس

 

وردپرس این امکان رو به کاربران میده تا با بتونن ظاهر سایت خودشون رو به دلخواه خودشون تغییر بدهند. این کار با استفاده از پوسته های وردپرس یا themes امکان پذیر هست.

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

توجه داشته باشید که اکثر پوسته ها در این سایت به زبان انگلیسی هستند و نیاز به فارسی سازی و گاها راستچین کردن دارند.

وبسایتهای زیادی به زبان فارسی وجود دارند که پوسته های فارسی سازی شده و راستچین شده رو میفروشند و گاها رایگان هم ارئه میدهند. ولی با توجه به تجربه خودم در زمینه کار با مشتریانی که پوسته هاشون رو قبلا خریداری کرده اند میدونم که معمولا ترجمه های اشتباه و دستکاری های غیر اصولی دارند. (حتی پولی ها) پس حتما در انتخاب پوسته مورد نظر دقت کنید.

 

بسیار خوب، برای نصب پوسته وردپرس ۲ راه وجود داره:

  • مستقیم از وردپرس نصب میکنم
  • پوسته قبلا دانلود شده و میخوام نصبش کنم

آموزش نصب پوسته در وردپرس بصورت تصویری - آموزش طراحی سایت بدون کدنویسی

برای نصب پوسته وارد قسمت “پوسته ها” از منو "نمایش" بشید. (قسمت ۱ و ۲)

 

در این صفحه، پوسته های نصب شده در سایت شما نمایش داده میشود که اولین پوسته سمت راست، همان پوسته فعال در سایت شماست. برای فعال سازی پوسته های دیگه، میتونید روی دکمه “فعال کردن” در روی کادر پوسته ها کلیک کنید.

 

 

برای نصب پوسته بر روی دکمه “افزودن پوسته” کلیک کنید. (قسمت ۳)

 

1- نصب پوسته به صورت مستقیم از وردپرس

 

باید توجه داشته باشید که این روش معمولا برای ما کاربران فارسی زبان که سایتمون هم فارسی هست، به دلیل اینکه پوسته ها اکثرا قبل از نصب باید فارسی سازی بشوند، کاربردی نداره و من برای آموزش بیان میکنم.

آموزش نصب قالب وردپرس بصورت آنلاین - آموزش طراحی سایت بدون کدنویسی با وردپرس

 

در صفحه نمایش داده شده، پوسته های وردپرس بر اساس جستجو (قسمت ۱ تصویر) و فیلترهایی که شما تعریف میکنید نمایش داده میشوند.

برای دیدن جزئیات پوسته و پیشنمایش اون (البته پیش نمایشها خیلی ناقص هستند و امکانات پوسته رو نشون نمیدن) بر روی پوسته کلیک کنید. (قسمت ۲)

بعد از انتخاب پوسته با کلیک بر روی “نصب” نصب پوسته انجام شده و میتوانید در صفحه پوسته ها فعال کنید.

 

 

توجه داشته باشید که هر پوسته ای امکانات متفاوتی داره و ممکنه تنظیمات بسیار ساده و یا بسیار پیچیده داشته باشه. معمولا در کنار پوسته هایی با تنظیمات پیچیده یک فایل راهنمای نصب و تنظیمات قرار داده میشه.

 

 

2- نصب پوسته با آپلود فایل پوسته

 

 

برای آپلود پوسته ای که قبلا تهیه کردید و فایل رو در اختیار دارید باید به این روش عمل کنید،

بر روی دکمه “بارگذاری پوسته ” (در کنار عنوان صفحه افزودن پوسته) در تصویر قبلی، کلیک کنید تا فرم بارگذاری پوسته برای شما نمایش داده شود.

 

آموزش نصب پوسته وردپرس - آموزش طراحی سایت بدون کدنویسی با وردپرس - آموزش وردپرس تصویری

فایل مربوط به پوسته وردپرس را انتخاب کرده و برروی “هم اکنون نصب کن ” کلیک کنید تا مراحل نصب پوسته به پایان برسد.

بعد از نصب پوسته میتونید اون رو از صفحه پوسته ها فعال کنید یا با کلیک بر روی سفارشی سازی شروع به تنظیمات پوسته مورد نظر کنید.

 

قسمت تنظیمات در پوسته های مختلف متفاوت هست ولی قسمتی که در آن اشتراک دارند، بخش سفارشی سازی پوسته وردپرس هست. بعد از فعال کردن پوسته بر روی دکمه سفارشی سازی کلیک کنید تا تنظیمات پوسته نمایش داده بشه. البته تنظیمات پوسته فقط این نیست و ممکنه به نسبت پوسته های مختلف تنظیماتی دیگری هم در زیر مجموعه منوی نمایش یا منوی اصلی سمت راست داشته باشه.

آموزش نصب قالب وردپرس - آموزش طراحی سایت بدون کدنویسی - آموزش وردپرس تصویری

بعد از تغیرات در پوسته بر روی انتشار کلیک کنید تا تغیرات اعمال شوند.

 

قدم هشتم : ارسال نوشته در وردپرس

 

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

در وردپرس ۲ نوع متن پیشفرض وجود داره (انواع دیگری هم ممکنه توسط پوسته یا پلاگین های شما اضافه شده باشه):

 

  • نوشته ها
  • برگه ها

 

تفاوف بین نوشته و برگه در اینه که برگه ها به صورت ثابت تعریف میشن و دسته بندی ندارند و هدف از اونها ایجاد صفحاتی مثل “درباره ما” ،”تماس با ما”، “معرفی یک محصول” و .. است.

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

 

برای ایجاد یک نوشته در وبسایتتون از به این شکل اقدام کنید:

آموزش درج مطلب جدید در وردپرس - آموزش طراحی سایت بدون کدنویسی - آموزش وردپرس تصویری

  • بر روی افزودن نوشته در منو نوشته ها کلیک کنید تا صفحه نوشته جدید ظاهر شود (قسمت 1 و 2)
  • عنوان نوشته با بنویسید (قسمت 3)
  • آدرس صفحه این نوشته به صورت خودکار با توجه به عنوان شما انتخاب میشه که میتونید تغییرش بدید قسمت 4)
  • متن اصلی رو در کادر مربوطه بنویسیو و اگر لازم بود عکس یا ویدیو اضافه کنید از دمنه افزودن چند رسانه ای استفاده کنید. (قسمت 5)
  • برای مطلب خودتون یک دسته بندی انتخاب کنید، مثلا دسته بندی مطالب مربوط به ریاضی و یا دسته بندی مطالب مربوط به فیزیک (قسمت 6)
  • برای مطلب خودتون یک عکس شاخص انتخاب کنید، این عکس به عنوان عکس اصلی مطلب هست (قسمت 7)
  • مطلب نوشته شده رو به صورت پیشنویس ذخیره کنید یا منتشر کنید. (قسمت 8)

 

نمایش لیست نوشته ها در وردپرس

 

برای اینکه لیست مطالب منتشر شده رو ببینید باید به صفحه نوشته ها بروید که در زیر ملاحظه میکنید:

آموزش درج نوشته در وردپرس - آموزش طراحی سایت بدون برنامه نویسی - آموزش وردپرس تصویری

در صفحه بالا میتونید لیست نوشته های خودتون رو ببینید و برای ویرایش روی نوشته مورد نظر کلیک کنید تا وارد صفحه ویرایش بشید.

در مورد برگه ها هم دقیقا محیط وردپرس همانند ویرایشگر نوشته هاست و فرق چندانی نداره و به راحتی میتونید استفاده کنید. فقط برای افزودن برگه باید به قسمت برگه ها بروید.

 


مطالب زیر ممکن است برای شما مفید باشد

 5 ترفند برای بهبود تجربه کاربری (UX) وب سایت تگ های header را در سئو سایت دست کم نگیرید نوع فایل‌های تصویری مناسب وب در سال 2019 رادیو صفر و یک - پادکست شماره ی 3 ام - شرکت جت برینز و محصولاتش برای برنامه نویسان رادیو صفر و یک - پادکست شماره ی 5 ام - دیپ فیک چیست ؟‌ آخرین مرز میان حقیقت و دروغ

محصولات برگزیده مناسب شما

 کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین کارگاه آموزشی کار با Grunt js

پایان 👍

  • نفس کریمی زاده

در این مقاله ی آموزشی من قصد دارم یاد بدم که چطور یک فایل نصبی اندرویدی را باز کنیم و درونش را نگاه کنیم . 

 

اپلیکیشن مد نظر ما اپلیکیشن اندرویدی دیجی کالا است . خیلی از برنامه نویسان شاید این سوال را در ذهن داشته باشند که اپلیکیشن دیجیکالا با چه زبان و سبکی طراحی شده است ؟ 

 

قصد ما در این مقاله ی آموزشی این نیست که سورس کد دیجیکالا را بصورت کامل بدست بیاوریم زیر این امر تقریبا امری غیر ممکن و نشدنی است چون اپلیکیشن های اندرویدی قبل از بیلد شدن به باید کدهای جاوا تبدیل میشوند و برعکس کردن آنها اصولا به ما سورس کد نوشته شده را تحویل نمیدهد . 

اما هدف ما از این مقاله ی آموزشی این است که ببینیم اپلیکیشن دیجیکالا با کدام زبان برنامه نویسی توسعه داده شده است و برخی چیزهای دیگر را از درون سورس واکشی کنیم مثلا فونت استفاده شده تصاویر استفاده شده و ....

 

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

apk مخفف Android application package است و یک فایل نصبی برای سیستم عامل اندروید است درست مثل فایل های نصبی ویندوزی که دانلود میکنیم و یک برنامه را نصب میکنیم . 

در حقیقت apk یک فایل فشرده از کدهای برنامه نویسی شده شامل فایل های .dex و resources, assets, certificates, و فایل manifest می باشد . 

فایل های apk میتواند هر نامی داشته باشد ولی باید فرمت آن فایل حتما apk باشد . 

apk را شما همانند یک فایل zip یا rar در نظر بگیرید که یک سری فایل ها را در یکجا زیپ کرده است . 

معمولا بعد از بازگشایی apk درون آن پوشه ها و فایل های زیر را خواهیم دید . 

 

  • پوشه ی META-INF 
    شامل فایل مانیفست و گواهینامه ها و ...
  • پوشه ی lib
    این پوشه شامل کد کامپایل های مربوط به معماری های مختلف پلتفرم های مختلف است مثلا armeabi فایلی است که کد کامپایل مربوط به پردازنده های ARM درونش قرار دارد و ...
  • پوشه ی res
    منابعی که نیاز به compile نیست در اینجا قرار میگیرد
  • پوشه ی assets
    دارایی های یک برنامه که کامپایل نمیشوند مثل تصاویر و ... که توسط AssetManager قابل دسترسی هستند
  • فایل AndroidManifest.xml
    این فایل شناسنامه ی برنامه های اندرویدی هست شامل مجوز ها ، ورژن برنامه ، نام پکیج برنامه و ...
  • فایل classes.dex
    این فایل توسط ماشین دالویک که هسته ی اندروید هست قابل فهمه و میشه گفت کدهای کامپایل شده هستند در فرمت dex
  • فایل resources.arsc
    این فایل شامل منابع از پیش کامپایل شده است برای مثال منبع xml گرافیکی 

 

علاوه بر موارد بالا ممکن است اپلیکیشنی که شما آنرا آنزیپ میکنید یک سری فایل ها و فولدرهای اضافی داشته باشد .

خب برای فهم اینکه یک اپ با چه زبانی نوشته شده است نیاز نیست خیلی عمیق وارد بحث محتویات آن زیپ شده ی یک فایل APK شویم ولی فهمیدن موارد بالا احتیاج است . 

ما اینجا فایل نصبی دیجیکالا را از اینترنت دانلود کردیم و شما هم میتوانید به راحتی دانلود کنید . نسخه ای که بعنوان اخرین نسخه ی  دیجی کالا پیدا کردیم ۱,۹.۳ بود .

فایل APK دیجیکالا را دانلود کردیم و سپس فرمت فایل را به zip تغییر دادیم ( کاری که شما هم باید انجام دهید ) . 

سپس با استفاده از یک نرم افزار کمک کننده مثل WinRar آنرا اکسترکت کردیم . 

 

چیزی که بدست آوردیم مشابه تصویر زیر است : 

 

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

 

در تصویر بالا میبینید بعد از اینکه فایل APK دیجی کالا را به فرمت zip تبدیل میکنیم برای مثال digikala.zip و سپس انرا توسط wiinrar باز میکنیم تمام فایل ها و فولدرهایی که در بالا ذکر کردیم درونش وجود دارد 

 

خب بعد از اینکه عمل بازگشایی اپلیکیشن دیجی کالا را انجام دادیم اگر یکی از فایل ها را باز کنیم مثلا فایل AndroidManifest.xml چیزی که خواهیم دید مشابه تصویر زیر خواهد بود . 

 

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

 

دلیل این اتفاق این است که ما فقط فایل فشرده شده ی digikala را باز کردیم و سپس تمامی محتویات آن کامپایل شده است و فقط ماشین مجازی dalvik میفهمد که درون این  فایل ها چی به چیه !

برای اینکه ما بتوانیم سورس کد درون یک APK را بفهمیم وقت آن رسیده است که فایل apk را دیکامپایل ( عمل معکوس کامپایل کردن ) کنیم .

برای راحتی کار دیکامپایل کردن یک فایل نصبی APK بهتره از ابزارهای انلاین برای این کار استفاده کنیم 

مثلا وقتی عبارت decompile apk را در گوگل جستجو کنید میتوانید به سایت apkdecompilers.com برسید که ابزار مفیدی برای دیکامپایل کردن فایل های apk است . 

بعد از باز کردن سایت مذکور کافیست روی انتخاب فایل یا Choose File کلیک کنید سپس دکمه ی decompile your apk را کلیک کنید . 

 

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

 

بعد از چند دقیقه apk دیکامپایل شده بصورت فایل zip به شما تقدیم میشود و میتوانید دانلود کنید 

خب بعد از اینکه ما فایل apk اپلیکیشن دیجی کالا را به این وب سایت ارسال کردیم و سورس کد آنرا دریافت کردیم محتویاتی مشابه تصویر زیر برای ما تحویل داده شد . 

 

سورس اپلیکیشن دیجی کالا - آموزش ساخت دیجی کالا - آموزش ساخت اپلیکیشن دیجی کالا

 

همانطور که در تصویر بالا مشاهده میکنید ، بسیاری از فایل ها دیگر وجود ندارد . و اگر درون فایل های مختلف را باز کنیم دیگر علائم بی نام و نشان برای ما نمایش داده نمیشود بلکه کدهای واقعیست که در اختیار ما قرار میگیرد . 

اگر یادتان باشد ما بالاتر محتویات درون فایل AndroidManifest.xml را باز کرده بودیم و علائم عجیب غریب مشاهده میکردیم در حالیکه الان اگر AndroidManifest.xml را باز کنیم کدهای واقعی xml مربوط به AndroidManifest.xml اپلیکیشن اندرویدی دیجیکالا را مشاهده خواهیم کرد . 

در تصویر زیر محتویات AndroidManifest.xml را میبینید که کاملا نام مجوز  ها ، اکتیویتی ها ، ریسایور ها و ... مشخص است : 

 

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

 

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

 

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

 

  • اپ React Native 
  • اپ Cordova 
  • اپ flutter
  • اپ نیتیو که جاوا و کاتلین نوشته میشود 

 

ما بعد از اینکه سورس کد را بدست آوردیم ( همانطور که در بالا گفته شد ) میتوانیم بر اساس سناریو های زیر زبان برنامه نویسی را پیدا کنیم : 

 

  1. اگر درون پوشه ی assets هر نوع فایلی با فرمت .bundle وجود داشته باشد ( بطور پیشفرض یک فایل با نام index.android.bundle ) اپلیکیشن با React Native ساخته شده است . 
  2. اگر درون پوشه ی assets پوشه ای با نام www وجود داشته باشد و محتوای مسیر assets/www مشابه تصویر زیر باشد پس این اپلیکیشن با cordova پیاده سازی شده است : 
    ساختار اپلیکیشن دیجی کالا - زبان برنامه نویسی دیجی کالا - دیجی کالا با چی نوشته شده است
     
  3. اگر گزینه ی 1 و 2 درست نبود به احتمال بسیار زیادی با زبان های نیتیو مثل جاوا و یا کاتلین نوشته شده است و وجود پوشه ای به نام kotlin بیانگر این است که حتما زبان برنامه نویسی کاتلین در اپ استفاده شده است . 

وجود فولدری به نام kotlin در میان پوشه های سورس و وجود فایل های با فرمت مرتبط با زبان کاتلین بیانگر این است که اپلیکیشن دیجی کالا در حال حاضر از زبان برنامه نویسی کاتلین استفاده میکند 

از انجایی که کدهای کاتلین را در کنار کدهای جاوا میتوان نوشت شاید بخش هایی از اپلیکیشن دیجیکالا با جاوا نوشته شده باشد به هرحال معلوم شد که زبان برنامه نویسی مورد استفاده نیتیو است و فرقی نمیکند جاوا یا کاتلین باشد . 

 

تصویر زیر هم فرمت یکی از فایل های درون سورس است که گویای این است که زبان کاتلین در این پروژه حتما به کار گرفته شده است : 

سورس اپلیکیشن دیجیکالا - آموزش ساخت دیجیکالا - آموزش ساخت اپلیکیشن دیجیکالا

 

کاتلین و جاوا زبان برنامه نویسی اپلیکیشن دیجیکالاست 

 

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

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

اتمام مقاله 


مطالب زیر ممکن است برای شما مفید باشد

 انتشار پروژه ی لاراولی روی هاست های اشتراکی 5 دلیل برای یادگیری کاتلین دیباگ کردن پروژه های لاراولی با Laravel Debugbar در نسخه ی 6 لاراول چه چیزی اضافه شده است ؟‌ اطلاعات مفید کاتلین که نباید از دست بدید

محصولات برگزیده مناسب شما

 دوره ی آموزش پروژه محور ساخت دیجیکالا به همراه اپ و سورس کامل دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین دوره ی آموزش کامل فریمورک لاراول Laravel دوره ی طلایی لاراول 6

پایان 👍

  • نفس کریمی زاده

تا تاریخ ژانویه ۲۰۱۷ تقریبا بیش از یک میلیارد و صد و چهل میلیون وب سایت بر روی اینترنت وجود دارد. رقابت سنگینی است اما نه برای افرادی که UX جذابی دارند.

شما چگونه بازدیدکنندگانی که به وب سایت شما سر می‌زنند را راضی نگه می‌دارید؟ باید بتوانید در زمان طراحی وب آن‌ها را در کانون توجه قرار دهید.

بنابراین، هر تصمیمی که برای سایت خود می‌گیرید، مشتری محور است. در ادامه مقاله در آواسام با ۵ روش اساسی برای اطمینان از جذاب بودن وب سایت خود، آشنا خواهید شد.

۵ روش عالی برای بهبود UX در طراحی سایت

 

۱. ساده سازی چیدمان وب سایت

 

تا به حال از وب سایتی بازدید کرده اید که خیلی شلوغ درهم باشد و آنقدر گیج شوید که ندانید ابتدا به چه چیزی نگاه کنید؟ در یک چیدمان ساده و شفاف چنین اتفاقی نخواهد افتاد. رمز داشتن چنین وب سایتی موارد زیر است:

۱. تعیین استراتژی محتوا و معماری اطلاعات براساس درک خواسته کاربر از وب سایت شما

۲. استفاده زیاد از فضای سفید

۳. رعایت سلسله مراتب تایپوگرافی

۴. گروه بندی منطقی اطلاعات

 

آموزش طراحی ux وب سایت ها

 

شماره چهار نشان می‌دهد چرا چیدمان‌های کارتی این روزها تا این حد غوغا کرده‌اند. قرار دادن محتوا در مربع‌های مجزا به شفافیت رابطه بین عناصر محتوایی کمک می‌کند. یک نمونه خوب از چیدمان ساده وب سایت Airbnb است. بخش اصلی به صورت منظم و شفاف طراحی شده است و به شما توضیح می‌دهد Airbnb چگونه می‌تواند به شما کمک کند. سپس به شکلی ساده می‌توانید به هدف خود برسید.

طراحان Airbnb با شکستن همه چیز به بلوک‌های سازنده، باعث مرتب شدن صفحه و راهبری آسان شده‌اند. این ویژگی زمانی موثر است که سایت با محتوای زیادی پر شده باشد. می‌توانید علاوه بر این چیدمان از ابزارهای جستجو و فیلترها برای رسیدن راحت‌تر به اطلاعات مورد نیاز خود استفاده کنید. چیدمان سایت خود را ساده انتخاب کرده و محتوا را در مرکز قرار دهید. اگر بازدیدکنندگان راحت‌تر به آنچه می‌خواهند برسند، احتمال ترک وب سایت شما کمتر خواهد شد.

 

۲. استفاده از لندینگ پیج  ( Landing Page ) هدفمند

 

مزایای بسیار زیادی در تست A/B وجود دارد که شامل بهبود محتوا، افزایش نرخ تبدیل بازدیدکننده به مشتری و جذابیت بالای وب سایت می‌باشد. آزمایش کردن با صفحات فرود به شما این امکان را می‌دهد تا چیدمان، تصاویر و متن‌های مختلف و فراخوان به عمل متفاوتی را امتحان کرده و بفهمید کدام یک برای مخاطب شما جذاب‌تر است. نیازی ندارید از صفحات تست خود، داده‌های مهم را حدس بزنید.

 

آموزش طراحی ux وب سایت ها

 

وب سایت Greats که یک وب سایت فروش کفش است از یک لندینگ پیج عالی استفاده کرده است. این صفحه ساده، دارای اسلایدر تمام صفحه از دو محصول اصلی است. راهبری و بقیه صفحه بر ایجاد دسترسی سریع به انواع کفش‌هایی که برای خرید به دنبال آن هستید، تمرکز دارند. از اینکه بیش از یک لندینگ پیج داشته باشید نترسید، آن‌ها را تست کنید تا ببینید کدام یک ارتباط بیشتری با مخاطب ایجاد می‌کند. فراموش نکنید که مجبور نیستید تنها یک صفحه فرود جذاب داشته باشید، می‌توانید پیام خود را به به صورت طراحی لندینگ پیج‌های هدفمند و مرتبط با نیازهای خاص مخاطبان به گوش آن‌ها برسانید.

 

۳. آموزش بازدیدکنندگان با راهنمایی ها و منابع

 

اطلاعات هیچ وقت از مد نمی‌افتند. مهم نیست حوزه خاص کاری شما چیست، منابع مفید و مشخص همیشه باعث جذب مخاطب می‌شوند. به همین دلیل است که محتوای طولانی در الگوریتم گوگل رتبه بهترین می‌گیرد. بنابراین، حداقل در این مورد، برنده بودن بازدیدکننده وبسایت برای شما هم یک برد محسوب می‌شود.

 

آموزش طراحی ux وب سایت

 

یک نمونه از وب سایت‌هایی که محتوای طولانی و عالی دارند سایت CJ Pony Parts است. این کمپانی بر علاقمندان به خودروی موستانگ تمرکز داشته و مرکز منبع آن‌ها دارای مقالات مفصل، راهنمایی‌های طولانی، ویدیو و اینفوگرافی می‌باشد. موضوعاتی که به آن پرداخته شده دقیقا مخصوص مخاطب هدف تهیه شده‌اند. برای مثال، آن‌ها مقاله کاملی در مورد دنده عقب موستانگ دارند. افزودن محتوای طولانی و اختصاصی باعث بهبود سئو شده و به مشتریان نشان می‌دهد شما برای کمک به آن‌ها آنجا هستید.

 

۴. طراحی واکنشگرا

 

تحقیقات نشان می‌دهند که ۸۰ درصد مردم از گوشی‌های هوشمند خود برای وب گردی استفاده می‌کنند. فقط کمتر از ۵۰ درصد مردم از تبلت استفاده کرده و بسیاری هم از دستگاه‌های مختلف استفاده می‌کنند و این یعنی دسترسی به یک وب سایت از دستگاه‌های مختلف. این موضوع به این معنی است که سایت شما باید برای تمام اندازه‌های صفحه نمایش آماده شده و همان محتوا را به همان شکل در تمام دستگاه‌ها نمایش دهد.

طراحی واکنشگرا به وب سایت امکان انطباق خود با اندازه صفحه نمایش دستگاه را می‌دهد. همچنین، می‌توانید سایت مخصوص موبایل طراحی کنید اما این روش زمانی که شما صفحات مختلف گوشی‌های هوشمند و تبلت ها را در نظر می‌گیرید کار پیچیده‌ای می‌شود و به کابوسی در مدیریت محتوا و سئو تبدیل می‌شود. به همین دلیل Webflow طراحی واکنشگرا را بسیار ساده‌تر کرده است. با این کار تمام مخاطبان تجربه خوبی از کار با سایت شما خواهند داشت.

 

آموزش طراحی ux وب سایت

 

۵. روی ربات ها حساب نکنید

 

ربات‌ها عالی هستند، می‌توانید از آن‌ها برای پاسخ دادن به بازدیدکنندگان از سایت، برگزاری کنفرانس در شبکه‌های اجتماعی، دنبال کردن خودکار افرادی که شما را دنبال می‌کنند و بسیاری کارهای دیگر استفاده کنید. پس مشکل کجاست؟ ربات یک انسان نیست. پاسخ‌های آن‌ها گاهی منطقی و مناسب شرایط نیست. گذشته از همه اینکه، ربات‌ها نمی‌توانند حل مساله‌ای که از انسان انتظار داریم را پیاده کنند. حتما با مشتریان خود تعامل انسانی داشته باشید تا مطمئن شوند به نیاز آن‌ها و مشکلاتشان اهمیت می‌دهید.

 

یک نمونه از وب سایت‌هایی که از webflow استفاده کرده و به هر شخص به صورت جداگانه پاسخ می‌دهد، وب سایت Groupon است. اگر شما نظری ارسال کرده یا شکایتی به بخش خدمات مشتریان آن ارسال کنید، یک عضو تیم Groupon به مشکل شما اختصاص یافته و برای حل آن به شما کمک می‌کند. این باعث ایجاد تجربه کاربری بهتر می‌شود. فقط در زمان نیاز از ربات‌ها استفاده کنید و حتما زمانی را برای ارتباط با خوانندگان در نظر بگیرید.

 

مطالب زیر ممکن است برای شما مفید باشد

 آموزش ساخت وب سایت بدون دانش برنامه نویسی ( وردپرس ) تگ های header را در سئو سایت دست کم نگیرید رادیو صفر و یک - پادکست شماره ی 9 ام - اینترنت بی اینترنت رادیو صفر و یک - پادکست شماره ی 3 ام - شرکت جت برینز و محصولاتش برای برنامه نویسان رادیو صفر و یک - پادکست شماره ی 5 ام - دیپ فیک چیست ؟‌ آخرین مرز میان حقیقت و دروغ

محصولات برگزیده مناسب شما

 کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین کارگاه آموزشی کار با Grunt js

پایان 👍

  • نفس کریمی زاده

آموزش کار با کتابخانه ی retrofit در اندروید - آموزش رتروفیت اندروید - آموزش ارتباطات سروری اندروید

در این مقاله ی آموزشی قصد داریم بصورت جامع و کامل درباره ی کتابخانه Retrofit برای کلاینت Retrofit  آموزش دهیم 

۱ - Retrofit  چیست ؟ 

امروزه ارتباط بین اپ موبایل و سرور مسئله ی مهمی است و از اهمیت بالایی برخوردار است . از آنجایی که کار با HttpUrlConnection  سخت است کتابخانه های جانبی برای این کار ساخته شده اند از جمله volley و کتابخانه ی Retrofit که کار ارتباطات سروری را راحت میکنند  .

 

Retrofit یک کلاینت از نوع REST  برای زبان جاوا و اندروید است . این کتابخانه به شما کمک میکند تا به سادگی عمل دریافت و ارسال اطلاعات به وب سرویس هایی که مبتنی بر REST (یا هر نوع ساختار دیگر) هستند را انجام دهید . ارسالا و دریافت اطلاعات با فرمت JSON میباشد . بجای JSON شما میتوانید Retrofit را برای کار دیگر نوع داده ها مثل XML یا نوع های دیگر تنظیم کنید . 

Retrofit از کتابخانه ی OkHttp  برای پروتکل HTTP استفاده میکند یعنی یه جورایی میشه گفت retrofit بر پایه ی OkHttp پیاده سازی شده است . 

 

۲ - نحوه ی استفاده از Retrofit 

 

برای کار با Retfofit شما اساسا نیاز به کلاس های زیر خواهید داشت 

  • یک کلاس مدل که اطلاعات مدل JSON را استفاده میکند
  • Interface هایی که عملیات HTTP  را تعریف میکند
  • کلاس Retrofit.Builder - برای تعریف خیلی از چیزها مثل URL  مربوط به درخواست HTTP و ... استفاده میشود

 

هر متود از اینترفیس یک درخواست از API را فراهم میکند . منظور از این درخواست ها همان درخواست های HTTP است که میتواند از نوع GET , POST یا هر چیز دیگری باشد . 

 

نتایج درون آبجکت Call  بسته بندی میشوند . مثال زیر را ببینید : 

 

 

@GET("users")
Call<List<User>> getUsers();

شما میتوانید URL درخواست را تعریف کنید و برای تعریف کردن این مورد @path را در کد زیر ببینید : 

@GET("users/{name}/commits")
Call<List<Commit>> getCommitsByName(@Path("name") String name);

پارامترهای کوئری روی @Query تنظیم میشوند . کد زیر را ببینید : 

@GET("users")
Call<User> getUserById(@Query("id") Integer id);

خب @Body هم مشخصه که بدنه اصلی ارسال ماست : 

@POST("users")
Call<User> postUser(@Body User user)

 

۳ -  نصب و راه اندازی Retrofit  در محیط android studio

 

خب برای استفاده از Retrofit باید ابتدا انرا نصب کنید . همچنین ما نیاز به Gson هم داریم که باید آنرا هم نصب کنیم و همچنین converter مربوطه به Gson را !

 

ابتدا وارد فایل Build.gradle از نوع Module شده و در بخش dependencies سه خط زیر را کپی کرده و دکمه sync را بزنید.

compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.google.code.gson:gson:2.6.1'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

البته برای بارگزاری و نصب شدن این کتابخانه چون کشور ایران تحریم است کاری انجام دهید که IP شما عوض شود مثلا از vpn استفاده کنید . 

چون این کتابخانه ها از اینترنت برای برقراری ارتباطات سروری استفاده میکنند شما باید مجوز اینترنت را به اپلیکیشن خود بدهید وگرنه اپ شما کار نمیکند . 

مجوزها در فایل AndroidManifest تعریف میشود . 

مجوز زیر را بهش اضافه کنید : 

<uses-permission android:name="android.permission.INTERNET" />

 

خب الان کتابخانه ی Retrofit و کتابخانه ی Gson نصب شده اند و مجوز اینترنت هم به اپ شما داده است . یعنی کاملا اماده است که کدنویسی کنید و ارتباط با سرور را برقرار کنید . 

 

۴ - شروع کار با Retrofit 

 

 یک نمونه یا instance از Retrofit بسازیم. موقتا این کار رو داخل Activity انجام می‌دیم. گرچه به یاد داشته باشید که اینکار درست نیست و روش درست‌ترش اینه که برای اپلیکیشن‌های بزرگ داخل کلاس Application تعریف بشه و یا بهتر از اون از Dagger استفاده بشه. ولی خوب فعلا سراغشون نمی‌ریم.

 

public class MainActivity extends AppCompatActivity {
	Retrofit retrofit;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		retrofit = new Retrofit.Builder().build(); // فعلا به همین صورت ساده بسنده می‌کنیم.
		}
}

 

خب حالا برای اینکه بتونیم بصورت GET یک سری داده ها را از یک API بخوانیم باید یک interface ایجاد کنیم . مثلا یک url ازمایشی پیدا کردم که یک سری پست را بصورت json ارائه میدهد و من برای خواندن آنها اینطوری کدنویسی میکنم : 

 

public interface MyApi {
   @GET("https://jsonplaceholder.typicode.com/posts")
   Call<List<Post>> getPosts();
}

 

در کد بالا متد GET داره میگه که بصورت get باید داده ها را بخوانی و بعد متد getPosts  مشخصه که میخاد پست ها را بخونه داخل Call را ببینید . نوشتیم List<post> اینجا مشخص میکنیم چیزی که برای ما از سمت سرور قراره بیاد یه سری پست هست . 

 

خب ما اینجا کلا داده هایی بصورت json دریافت کردیم که برای فهم و درک کردن آنها یا اصطلاحالا پارس کردن json های دریافتی باید از کتابخانه ی GSON استفاده کنیم . که ما Gson و Gson convertor را به همین منظور در مرحله ی قبلی نصب کردیم . 

 

یادتون باشه به Retrofit بگید که ما قصد داریم از Gson استفاده کنیم . کد زیر برای زمانی است که ما یک retrofit جدید میسازیم . درون متود oncreate ...

retrofit = new Retrofit.Builder()
    .addConverterFactory(GsonConverterFactory.create())
    .build();

 

حالا دیگه رتروفیت می‌فهمه که باید از Gson استفاده کنه. اینکه Gson چطوری این تبدیلات رو انجام میده هم مربوط به بحث دیگریه.

حالا نیاز داریم interfaceی که بالاتر ساختیم رو یه جوری به رتروفیت متصل کنیم. برای اینکار از کد زیر استفاده می‌کنیم.

MyApi myApi = retrofit.create(MyApi.class);

حالا که یک نمونه از کلاس MyApi رو داریم خیلی راحت میتونیم از متودهای داخلش استفاده کنیم.

myApi.getPosts().enqueue(new Callback<List<Post>>() {
	@Override
	public void onResponse(Call<List<Post>> call, Response<List<Post>> response) {
		List<Post> posts = response.body(); // اینجا خیلی راحت فهرست پست‌ها که توسط Gson ساخته شده رو در اختیار داریم
	}
	
	@Override
	public void onFailure(Call<List<Post>> call, Throwable t) {
		// این متود هم فقط زمانی فرخوانی می‌شه که به هر دلیلی کانکشن ما با مشکل روبرو بشه
	}
});

خوب احتمالا باید بدونید که تو اندروید اجرای عملیات شبکه نیاز به هیچ وجه نباید روی thread اصلی برنامه اجرا بشه. به همین دلیل ما از متود enqueue استفاده می‌کنیم که این مشکل ما رو حل میکنه یعنی کانکشن زدن و خوندن دیتا رو روی Background Thread انجام میده.

 

 

خب یک مثال کاربردی در زیر اورده ایم که با آن میتوانید یک پروژه ساده پیاده سازی کنید و مباحث رتروفیت را یاد بگیرید . 

 

یک پروژه ی جدید ایجاد کنید و سپس سه خط زیر را به فایل Build.gradle از نوع Module شده و در بخش dependencies اضافه کنید و سپس sync را بزنید : 

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.google.code.gson:gson:2.6.1'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

وارد فایل AndroidManifest.xml شوید و مجوز اینترنت را حتما بدهید : 

<uses-permission android:name="android.permission.INTERNET" />

 

باید یک کلاس Pojo همراه با Annotation درست کنیم تا gson یک مپ از کلیدهای json ما درست کند تا بتوان آنها را پارس کند پس یک فایل به نام Post ایجاد کنید و کدهای زیر را در آن قرار دهید.

 

package ir.avasam.model;
 
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
 
public class Post {
 
    @SerializedName("title")
    @Expose
    private String title;
    @SerializedName("body")
    @Expose
    private String body;
    @SerializedName("userId")
    @Expose
    private Integer userId;
    @SerializedName("id")
    @Expose
    private Integer id;
 
    public String getTitle() {
        return title;
    }
 
    public void setTitle(String title) {
        this.title = title;
    }
    
    public String getBody() {
        return body;
    }
 
    public void setBody(String body) {
        this.body = body;
    }
 
    public Integer getUserId() {
        return userId;
    }
 
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
 
    public Integer getId() {
        return id;
    }
 
    public void setId(Integer id) {
        this.id = id;
    }
     
    @Override
    public String toString() {
        return "Post{" +
                "title='" + title + '\'' +
                ", body='" + body + '\'' +
                ", userId=" + userId +
                ", id=" + id +
                '}';
    }
}

بعد از اینکار باید یک Instance از Retrofit بسازیم تا عمل Request زدن را ایجاد کند.

package ir.avasam;

import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
 
public class RetrofitClient {
 
    private static Retrofit retrofit = null;
 
    public static Retrofit getClient(String baseUrl) {
        if (retrofit==null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(baseUrl)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }
}

بعد از اینکار باید APIService را ایجاد کنید ، این کلاس شامل متدهای مربوط به درخواست HTTP سمت سرور است مثل POST PUT GET DELETE و ...

پس یک فایل به نام APIService.java ایجاد کنید و کدهای زیر را در آن قرار دهید .  

package ir.avasam;

import com.chikeandroid.retrofittutorial2.data.model.Post;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
 
public interface APIService {
 
    @POST("/posts")
    @FormUrlEncoded
    Call<Post> savePost(@Field("title") String title,
                        @Field("body") String body,
                        @Field("userId") long userId);
}

کد بالا یک  سری از مقادیری را به یک url خاص POST می کند نام متد را برابر با savePost قرار دادیم . 

در نهایت داده به این آدرس POST می شود : 

http://jsonplaceholder.typicode.com/posts

ما در حال استفاده از یک Api دمو از و آماده ی اینترنتی برای تست کردن رتروفیت و اپلیکیشن اندرویدی خودمان هستیم . 

و درنهایت یک کلاس به نام ApiUtils داریم که با فراخوانی آن عمل ارسال Request انجام  میگردد 

پس یک کلاس به نام ApiUtils.java ایجاد کنید و کدهای زیر را در آن قرار دهید : 

package ir.avasam;
 
public class ApiUtils {
 
    private ApiUtils() {}
 
    public static final String BASE_URL = "http://jsonplaceholder.typicode.com/";
 
    public static APIService getAPIService() {
 
        return RetrofitClient.getClient(BASE_URL).create(APIService.class);
    }
}

تا اینجا هرچیزی که برای Retrofit لازم بوده را ایجاد کردیم و حالا رتروفیت قابل استفاده میباشد . 

یک layer درست کنید و کدهای زیر را در آن قرار دهید مثلا : activity_main.xml 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_post"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context="com.chikeandroid.retrofittutorial2.AddEditPostActivity">
 
    <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:textAppearance="@style/TextAppearance.AppCompat.Title"
            android:text="AVASAM.IR"/>
    <EditText
            android:id="@+id/et_title"
            android:layout_marginTop="18dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/hint_title"/>
 
    <EditText
            android:id="@+id/et_body"
            android:lines="4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/hint_body"/>
 
    <Button
            android:id="@+id/btn_submit"
            android:layout_marginTop="18dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorAccent"
            android:textColor="@android:color/white"
            android:text="@string/action_submit"/>
 
    <TextView
            android:id="@+id/tv_response"
            android:layout_marginTop="35dp"
            android:visibility="gone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
     
</LinearLayout>

و در آخر کدهای درون MainActivity.java را نیز بصورت زیر مینویسیم : 

private TextView mResponseTv;
private APIService mAPIService;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    final EditText titleEt = (EditText) findViewById(R.id.et_title);
    final EditText bodyEt = (EditText) findViewById(R.id.et_body);
    Button submitBtn = (Button) findViewById(R.id.btn_submit);
    mResponseTv = (TextView) findViewById(R.id.tv_response);
 
    mAPIService = ApiUtils.getAPIService();
 
    submitBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String title = titleEt.getText().toString().trim();
            String body = bodyEt.getText().toString().trim();
            if(!TextUtils.isEmpty(title) && !TextUtils.isEmpty(body)) {
                sendPost(title, body);
            }
        }
    });
}
public void sendPost(String title, String body) {
mAPIService.savePost(title, body, 1).enqueue(new Callback<Post>() {
    @Override
    public void onResponse(Call<Post> call, Response<Post> response) {
 
        if(response.isSuccessful()) {
            showResponse(response.body().toString());
            Log.i(TAG, "post submitted to API." + response.body().toString());
        }
    }
 
    @Override
    public void onFailure(Call<Post> call, Throwable t) {
        Log.e(TAG, "Unable to submit post to API.");
    }
});
}
 
public void showResponse(String response) {
    if(mResponseTv.getVisibility() == View.GONE) {
        mResponseTv.setVisibility(View.VISIBLE);
    }
    mResponseTv.setText(response);
}

 

ابتدا شئی ها را find کردیم بعد از اینکار دو متد نوشتیم متد اول sendPost برای ارسال یا Post اطلاعات است و متد دوم showResponse در صورتی که response درستی از سمت سرور دریافت شود داده را دریافت کرده و نمایش میدهد در بالا ApiUtils هم باعث اجرای درخواست می شود.

 

این آموزش به اتمام رسید موفق و پیروز باشید 

 

.


مطالب زیر ممکن است برای شما مفید باشد

 آموزش ساخت اسلایدر با Viewpager برای اپ های اندرویدی در محیط android studio طراحی های پیچیده اپلیکیشن های اندرویدی با Constraint Layout برنامه نویسی سوکت در جاوا مفاهیم موتور جستجو و آموزش ساخت موتور جستجو با PHP آموزش ساخت صفحه ثبت نام و ورود در اپ اندرویدی

محصولات برگزیده مناسب شما

 دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین دوره ی آموزش برنامه نویسی اندروید با جاوا و android studio دوره ی پروژه محور ساخت سایت و اپ دیوار با سورس دوره ی پروژه محور ساخت سایت و اپ مارکت بازار با سورس کامل

پایان 👍

  • نفس کریمی زاده

مرحله ی ۱ : تغییرات فایل Gradle را انجام دهید . 

 

ما قصد داریم از دو کتابخانه استفاده کنیم که باید آنها را به گردل اضافه کنیم . کتابخانه ی ViewPagerIndicator   و Glide .

فایل  build.gradle(Module: app) را باز کنید و سه خط زیر را اضافه کنید : 

implementation 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
implementation 'com.github.bumptech.glide:glide:4.7.1'
implementation 'com.android.support:design:27.1.0'

 

مرحله ی ۲ : اضافه کردن مجوز ها یا Permission ها .

 

برای اینکه ما تصاویر را از اینترنت فراخوانی میکنیم به مجوز اینترنت نیاز داریم که در فایل AndroidManifest.xml مجوز را اضافه کنید :

 <uses-permission android:name="android.permission.INTERNET"/>

 

مرحله ی ۳ : ساخت Layout اسلایدر . 

 

در مسیر res->layout یک فایل layout جدید بسازید و اسمش را slidingimages_layout.xml قرار دهید . 

کدهای زیر را درون آن بنویسید : 

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="1dip" >
 
    <ImageView
        android:id="@+id/image"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:adjustViewBounds="true"
        android:layout_gravity="center"
        android:src="@mipmap/ic_launcher"
        android:scaleType="centerCrop" />
</FrameLayout>

این کدها برای آماده کردن یک اسلاید واحد در Viewpager ما میباشد . 

 

مرحله ی ۴ : کلاس Adapter را بسازید . 

 

یک عدد کلاس از نوع Adapter ایجاد کنید که وظیفه ی ارائه ی داده های مورد نیاز برای پرکردن اسلاید ها را دارد . 

یک فایل کلاس درست کنید و نام انرا SlidingImage_Adapter.java قرار دهید . 

کدهای زیر را درون آن بنویسید : 

import android.content.Context;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
 
 
 
/**
 * Created by Parsania Hardik on 23/04/2016.
 */
public class SlidingImage_Adapter extends PagerAdapter {
 
 
    private String[] urls;
    private LayoutInflater inflater;
    private Context context;
 
 
    public SlidingImage_Adapter(Context context, String[] urls) {
        this.context = context;
        this.urls = urls;
        inflater = LayoutInflater.from(context);
    }
 
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }
 
    @Override
    public int getCount() {
        return urls.length;
    }
 
    @Override
    public Object instantiateItem(ViewGroup view, int position) {
        View imageLayout = inflater.inflate(R.layout.slidingimages_layout, view, false);
 
        assert imageLayout != null;
        final ImageView imageView = (ImageView) imageLayout
                .findViewById(R.id.image);
 
 
        Glide.with(context)
                .load(urls[position])
                .into(imageView);
 
        view.addView(imageLayout, 0);
 
        return imageLayout;
    }
 
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view.equals(object);
    }
 
    @Override
    public void restoreState(Parcelable state, ClassLoader loader) {
    }
 
    @Override
    public Parcelable saveState() {
        return null;
    }
 
 
}

 

خب حالا بیایید کدهای بالا را درک کنیم . 

خط زیر را در نظر داشته باشید : 

private String[] urls;

این خط یک آرایه به نام urls میسازد که قراره url ها یا آدرس اینترنتی اسلاید ها را نگهداری بکند . 

من این آرایه رشته را با مقادیر آن در کلاس MainActivity.java ایجاد کرده ام که در مرحله بعدی خواهیم دید.

متد instantiateItem() وظیفه ی ساختن هر اسلاید در viewpager را دارد . 

 

کدهای این متد در زیر آمده است : 

 @Override
    public Object instantiateItem(ViewGroup view, int position) {
        View imageLayout = inflater.inflate(R.layout.slidingimages_layout, view, false);
 
        assert imageLayout != null;
        final ImageView imageView = (ImageView) imageLayout
                .findViewById(R.id.image);
 
 
        Glide.with(context)
                .load(urls[position])
                .into(imageView);
 
        view.addView(imageLayout, 0);
 
        return imageLayout;
    }

قبل از هر چیزی ، کامپایلر تمام اسلاید ها را با خط زیر میسازد : 

View imageLayout = inflater.inflate(R.layout.slidingimages_layout, view, false);

من از slidingimages_layout.xml استفاده کردم که در مرحله ی ۳ ایجاد کردیم . 

سپس کامپایلر ImageView  را با استفاده از findViewById() پیدا میکند . 

 بعد از آن کامپایلر برای فراخوانی یا لود کردن تصاویر از قطعه کدهای زیر استفاده میکند : 

Glide.with(context)
     .load(urls[position])
     .into(imageView);

urls[position] مسیر یا URL مناسب تصویر را ارائه می دهد. 

سه خط بالا تصویر را لود میکند و در imageview نشان میدهد . 

 

مرحله ی ۵ - آخرین تغییرات . 

 

حالا اخرین کاری که باید انجام دهیم فایل های activity_main.xml و MainActivity.java  را کمی تغییر دهیم و درست کنیم . 

کدهای زیر را در activity_main.xml بنویسید : 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp">
 
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
 
        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentTop="true" />
 
        <com.viewpagerindicator.CirclePageIndicator
            android:id="@+id/indicator"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:gravity="bottom"
            android:padding="10dip"
            app:centered="true"
            app:fillColor="#df0623"
            app:pageColor="#fff"
            app:snap="false" />
    </RelativeLayout>
</RelativeLayout>

 

من یک viewpager  در صفحه ی اصلی ساختم . 

حالا باید نقاط راهنمایی یا indicator  های اسلایدر که یک سری نقطه به تعداد اسلاید ها در زیر اسلایدر است را نشان دهیم . البته این شکل های گرد برای راهنمایی کاربر است که متوجه شود دقیقا روی اسلاید چندم است و کلا چند اسلاید داریم . 

به همین خاطر ، من relativelayout استفاده کردم، بنابراین می توانیم موارد مناسب را با هم هماهنگ کنیم.

 

کدهای زیر را در فایل جاوا MainActivity.java بنویسید :

import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.viewpagerindicator.CirclePageIndicator;
import java.util.Timer;
import java.util.TimerTask;
 
public class MainActivity extends AppCompatActivity {
 
    private static ViewPager mPager;
    private static int currentPage = 0;
    private static int NUM_PAGES = 0;
 
    private String[] urls = new String[] {"https://demonuts.com/Demonuts/SampleImages/W-03.JPG", "https://demonuts.com/Demonuts/SampleImages/W-08.JPG", "https://demonuts.com/Demonuts/SampleImages/W-10.JPG",
                                            "https://demonuts.com/Demonuts/SampleImages/W-13.JPG", "https://demonuts.com/Demonuts/SampleImages/W-17.JPG", "https://demonuts.com/Demonuts/SampleImages/W-21.JPG"};
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        init();
    }
 
    private void init() {
 
        mPager = (ViewPager) findViewById(R.id.pager);
        mPager.setAdapter(new SlidingImage_Adapter(MainActivity.this,urls));
 
        CirclePageIndicator indicator = (CirclePageIndicator)
                findViewById(R.id.indicator);
 
        indicator.setViewPager(mPager);
 
        final float density = getResources().getDisplayMetrics().density;
 
//Set circle indicator radius
        indicator.setRadius(5 * density);
 
        NUM_PAGES = urls.length;
 
        // Auto start of viewpager
        final Handler handler = new Handler();
        final Runnable Update = new Runnable() {
            public void run() {
                if (currentPage == NUM_PAGES) {
                    currentPage = 0;
                }
                mPager.setCurrentItem(currentPage++, true);
            }
        };
        Timer swipeTimer = new Timer();
        swipeTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                handler.post(Update);
            }
        }, 3000, 3000);
 
        // Pager listener over indicator
        indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 
            @Override
            public void onPageSelected(int position) {
                currentPage = position;
 
            }
 
            @Override
            public void onPageScrolled(int pos, float arg1, int arg2) {
 
            }
 
            @Override
            public void onPageScrollStateChanged(int pos) {
 
            }
        });
 
    }
}

 

توضیحات کد بالا 

به بخش زیر توجه کنید : 

new String[] {"https://demonuts.com/Demonuts/SampleImages/W-03.JPG", 
                                    "https://demonuts.com/Demonuts/SampleImages/W-08.JPG", 
                                               "https://demonuts.com/Demonuts/SampleImages/W-10.JPG",
                                            "https://demonuts.com/Demonuts/SampleImages/W-13.JPG", 
                                           "https://demonuts.com/Demonuts/SampleImages/W-17.JPG", 
                                           "https://demonuts.com/Demonuts/SampleImages/W-21.JPG"};

در این بخش تصاویری که میخواهیم از url های مشخص فراخوانی شود و در اسلایدر قرار بگیرد مینویسیم . یک آرایه از url تصاویر میباشد . 

حالا به درون متد init() توجه کنید : 

private void init() {
 
        mPager = (ViewPager) findViewById(R.id.pager);
        mPager.setAdapter(new SlidingImage_Adapter(MainActivity.this,urls));
 
        CirclePageIndicator indicator = (CirclePageIndicator)
                findViewById(R.id.indicator);
 
        indicator.setViewPager(mPager);
 
        final float density = getResources().getDisplayMetrics().density;
 
//Set circle indicator radius
        indicator.setRadius(5 * density);
 
        NUM_PAGES = urls.length;
 
        // Auto start of viewpager
        final Handler handler = new Handler();
        final Runnable Update = new Runnable() {
            public void run() {
                if (currentPage == NUM_PAGES) {
                    currentPage = 0;
                }
                mPager.setCurrentItem(currentPage++, true);
            }
        };
        Timer swipeTimer = new Timer();
        swipeTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                handler.post(Update);
            }
        }, 3000, 3000);
 
        // Pager listener over indicator
        indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 
            @Override
            public void onPageSelected(int position) {
                currentPage = position;
 
            }
 
            @Override
            public void onPageScrolled(int pos, float arg1, int arg2) {
 
            }
 
            @Override
            public void onPageScrollStateChanged(int pos) {
 
            }
        });
 
    }

این متد در ابتدا adapter را به viewpager ست میکند . 

کامپایلر در viewpager  مشخص کننده ها که همان اشکال گرد برای هر اسلایدر است تنظیم میکند . 

شما میتوانید شعاع این اشکال گرد را نیز تغییر دهید توسط خط زیر : 

indicator.setRadius(5 * density);

خط زیر تعداد اسلایدها را مشخص میکند : 

NUM_PAGES = urls.length;

و قطعه کد زیر هم خاصیت اسلاید شو یا نمایش خودکار را به اسلایدر ما اضافه میکند : 

 // Auto start of viewpager
        final Handler handler = new Handler();
        final Runnable Update = new Runnable() {
            public void run() {
                if (currentPage == NUM_PAGES) {
                    currentPage = 0;
                }
                mPager.setCurrentItem(currentPage++, true);
            }
        };
        Timer swipeTimer = new Timer();
        swipeTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                handler.post(Update);
            }
        }, 3000, 3000);

شما میتوانید سرعت اسلایدشو را با تغییر عدد ۳۰۰۰ کم و زیاد کنید . 

 

 

سورس قرار گرفت برای اندروید استودیو میتونید دانلود کنید 

دانلود سورس 

آموزش ساخت اسلایدر اندرویدی در اپلیکیشن

 

تمام


مطالب زیر ممکن است برای شما مفید باشد

 آموزش ساخت اسلایدر با Viewpager برای اپ های اندرویدی در محیط android studio kotlin یا جاوا ؟ برای برنامه نویسان اندروید مسئله این است ! ساخت وب سرویس مبتنی بر Rest با PHP و MySQL جهت استفاده در موبایل آموزش ساخت صفحه ثبت نام و ورود در اپ اندرویدی آموزش ساخت منو در اندروید استودیو برای اپ های اندرویدی

محصولات برگزیده مناسب شما

 دوره ی پروژه محور ساخت سایت و اپ مارکت بازار با سورس کامل دوره ی پروژه محور ساخت سایت و اپ دیوار با سورس دوره ی آموزش برنامه نویسی اندروید با جاوا و android studio دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین

پایان 👍

  • نفس کریمی زاده

بک لینک ها و انواع آنها 

مدت ها بود که درگیر مسئله ی بک لینک ها در سئو وب سایت ، نحوه ی ایجاد بک لینک های با کیفیت و در نهایت انواع بک لینک ها بودم ولی یک مطلب خوب جامع و مفیدی در این باره پیدا نکردم  مدت ها در این زمینه مطالعه کردم و امروز قصد دارم تجربیاتم را بصورت یک مقاله ی مفید و کامل بنویسم

در این مقاله بصورت کامل سعی کردم درباره ی بک لینک ها که یکی از مباحث اصلی سئو هست را بصورت یکجا بنویسم

بک لینک ها اساس کار موتورها جستجو هستن . بدون بک لینک ها شما هیچ شانسی برای رقابت بین صفحات پیدا شده در جستجوی گوگل نخواهید داشت .

قصد من از جمع آوری همه چیز در این پست ، در اصل انتقال مفهوم بک لینک است . از صفر تا صد بک لینک را اینجا میخوانید . چرا بک لینک ها برای سئو مهم اند  ، هدف آنها چیست ؟ ، چقدر بک لینک نیاز دارید ؟ و درباره ی کیفیت لینک ها اینجا مطالعه خواهید کرد .

 بک لینک چیست ؟ تاثیر بک لینک acklink چیست ؟ تاثیر backlink بر سئو - آموزش سئو

Backlink  چیست ؟‌

 

به عبارتی دیگر ، Backlink  یک لینک است که بواسطه ی آن کاربر از یک صفحه ی اینترنتی به صفحه ی دیگری فرستاده میشود .

لینک ها هم بصورت متنی و هم بصورت گرافیکی ممکن است قرار بگیرد و  در بخش های زیر از یک وب سایت ممکن است قرار داده شوند :

·         هدر سایت

·         فوتر سایت

·         درون متن ها

·         در بخش وبلاگ

·         در یک بنر تبلیغاتی

·         زیر یک متن

·         در یک صفحه خالی

·         بصورت نظر ( comment ) در یک وب سایت

 

Backlink  ها بعنوان شریان های حیاتی سئو حساب میشوند و یکی از بخش های استراتژیک بهینه سازی موتورهای جستجو هوشمند ، ساختن  backlink  های با کیفیت بالا است .

Backlink ها تاثیر شدیدی در جایگاه وب سایت در نتایج جستجوی گوگل دارند .

Backlink ها در رتبه بندی سایت تاثیر شگرفی دارند و به همین خاطر هست که متخصصین سئو همیشه بر backlink ها تاکید دارند و آنها را بسیار مهم میدانند .

 

چرا بک لینک ها مهم هستند ؟

 

در دنیای دیجیتال مارکتینگ و بهینه سازی موتورهای جستجو ، backlink  ها بسیار مهم هستند . این لینک ها بر روی محبوبیت ، ارتباطات و قدرت و اعتبار دامنه ی شما اثر دارن.

Backlink های با کیفیت که تولید میکنید بهترین شانس را به شما ارمغان می اورد تا در یک کلمه ی کلیدی در گوگل رتبه ی بهتری داشته باشید .

وقتی یک خزنده ی موتور جستجو به وب سایت شما وارد میشود تا ارتباط آدرس سایت ، صفحات و هر چیزی که نمایش داده میشود را مشخص کند ، نگاه نزدیکی به تعداد و کیفیت backlink های دامنه ی شما می اندازد .

از دید یک موتور جستجو ، backlink  ها نشان دهنده اهمیت و ارتباط یک سایت خاص هستند ، اگرچه ما نمیدانیم واقعا موتورهای جستجو به backlink ها توجه میکنند و چطور و چقدر بر رتبه ی سایت اثر میگذارند . اما چیزی که مطمئنا میدانیم این است که کیفیت backlink ها مطمئنا فاکتور مهم و موثر است .

Backlink ها مهم است چون :

·         به رتبه بندی شما در جستجوی ارگانیک کمک کنند

·         کمک میکنند تا گوگل صفحات شما را سریعتر ایندکس بکند

·         باعث میشود ترافیک ارجاعی بزرگی را کسب کنید

·         به کاربران کمک میکنند که بین صفحات و سایت ها به راحتی گردش کنند و به محتوای مورد نظر دسترسی سریع داشته باشند

گوگل به سایت هایی که backlink های با کیفیت تری دارند اعتبار بیشتری بدهد و رتبه ی چنین وب سایت هایی خیلی بهتر از سایت هایی هست که backlink  های منابع مشخص و مشابهی را ندارند ، وب سایت هایی که منبع لینک خوب و مشابه خودشان را دارند بصورت خودکار رتبه ی بالاتری در نتایج گوگل خواهند داشت .

بخاطر همین همیشه باید سعی کنید backlink های با کیفیت بالا و طبیعی بسازید . به این معنی که شما باید backlink  های واقعی مرتبط با موضوع صفحه یا سایت خود را داشته باشید نه اینکه هر جا برسه یک لینک الکی ایجاد کنید ، اینطوری فایده ای نخواهد داشت .

 انواع بک لینک ها در سئو ، بک لینک در سئو ، اهمیت بک لینک در سئو ، backlink سئو

انواع backlink ها :

 

صرفنظر از  آنچه شما بصورت آنلاین برای خواسته هایتان انجام میدهید ، backlink  ها کلا به دو دسته تقسیم میشن  :

لینک های  dofollow  و  nofollow

این چیزی است که شما برای هر دو نوع ، در کد HTML  خواهید دید :

 

< a href="https://www.avasam.ir"> Link Text </ a >

< a href="https://www.avasam.ir" rel="nofollow"> Link Text < /a >

 

تغاوت backlink ها 

تنها تفاوت این دو لینک خصوصیت rel است که در لینک nofollow  مقدار آن nofollow است . بطور خلاصه وقتی شما یک لینکی را بصورت  nofollow تعریف میکند به گوگل اعلام میکنید که این لینک یک لینک طبیعی است و هیچ گونه قصد سواستفاده برای افزایش رتبه ی الکی جایی را ندارید ! البته همیشه هم اینطوری نیست یعنی بهتره در سایت شما برای اینکه قدرت سایتتون را به گوگل نشان دهید گاهی لینک های nofollow  داشته باشید .

لینک های nofollow  برای رتبه ی مقصد لینک ، هیچ تاثیری در رتبه بندی ندارند و فقط یک لینک ساده هستند که به یک جایی ارجاع داده شوند . اما وقتی یک وب سایت معتبر و رتبه ی بالا لینک شما را حتی بصورت nofollow قرار میدهد برای ارزش و اعتبار دامنه ی سایت شما بی تاثیر نیست .

پس به این نتیجه میرسیم لینک هایی که dofollow یا follow هستند همان لینک های عادی هستند که در تمام وب سایت ها وجود دارد و گوگل مقصد آنها را برای رتبه بندی بررسی میکند و اگر از یک سایت معتبر و یا یک جای معتبر لینک داده شوند مطمئنا روی رتبه بندی آن سایت مقصد تاثیر خوبی گذاشته میشود .

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

اما اگر همین لینک بصورت nofollow قرار بگیرد گوگل دیگر برای بررسی و رتبه دهی سراغ سایت ب نمیرود اما یک سری الگوریتم هایی دارد که بر ارزش و قدرت مقصد بی تاثیر نیست .

در سایت خودتان اگر لینک های فراوان قرار میدهید یا لینک هایی برای ارجاع به جامعه های مجازی و ... دارد به آنها خاصیت nofollow بدهید تا اعتبار سایت شما نزد گوگل زیاد شود .

چون وقتی در سایت شما چندین لینک باشد که از نوع nofollow باشند یعنی اینکه شما دوست ندارید از رتبه و اعتبار سایت خود برای دیگر سایت ها مایه بگذارید و این یعنی شما به سایت خودتان ارزش قائلید و در نهایت همه ی اینها را موتورهای جستجو درک میکنند و برای اینده و رتبه بندی سایت شما بی تاثیر نخواهد بود .

لینک های نوفالو به ربات ها میگن که منو فالو نکن! ولی خب یه موضوعی که همیشه مطرح هستش مودب بودن یا حرف گوش کن بودن ربات هاست؛ که بعضی وقت ها این لینک هارو دنبال میکنن و تاثیر گذاریش رو روی سئو سایت میزاره.

 

اگر بخوام مثال بازار رو برای این نوع بک لینک ها بگم، میشه معرفی یه فرد توسط یکی دیگه از همون افراد بازار ولی به این صورت که اون فرد از اعتبار خودش برای معرفی استفاده نمیکنه و فقط صرفا شخص مورد نظر رو معرفی میکنه !

 

·         تقریبا ۷۰ درصد بقیه لینک های موجود در اینترنت نوفالو و انواع زیر مجموعه ای اون هستن.

·         بک لینک nofollow ارزش کمتری نسبت به بک لینک های follow داره

·         تقریبا میشه گفت اکثر لینک هایی که توی شبکه های اجتماعی قرار میگیره نوفالو هستند.

·         نمیشه این نوع بک لینک رو نادیده در  نظر گرفت؛ چون امکان نداره گوگل از ۷۰ درصد لینک های فضای اینترنت چشم پوشی کنه.

·         برای مدیریت لینک های خروجی صفحات سایتمون بهتره که از بک لینک های نوفالو استفاده کنیم.

چه چیزی یک backlink را قدرتمند میکند ؟

 آموزش سئو ، آموزش بک لینک ها ، انواع بک لینک ها ، قراردادن بک لینک

چه چیزی یک backlink را لینکی خوب و چه چیزی انر بد تلقی میکند ؟

 

برای بررسی کردن این موضوع ، مثل تمامی موارد دیگر در زندگی که کیفیت یک امر سلیقه ای است و از فردی به فرد دیگر تفاوت دارد . در بحث سئو و متخصصین سئو نیز بک لینک های خوب و  بد از سایتی تا سایت دیگر متفاوت هستند .

برای اینکه متوجه شوید کدام مناسب شماست ، ابتدا بخش های زیر را بخوانید :

·         ارتباط محتوایی سایت

·         لینک های خروجی و جایی که قرار گرفته اند

·         مشخصات backlink های رقبای شما

اگر چه عقیده های افراد در این زمینه ممکن است متفاوت باشد ، هر بازاریاب دیجیتالی و متخصص سئو با یک backlink  خوب موافق است که اصول زیر را پیروی کند  :

1.      کیفیت backlink

برای اینکه یک backlink با کیفیت باشد باید از بخشی که مرتبط با موضوع باشد بیاید ( یعنی از جای نامربوط به یک صفحه کاربر ارسال نشود ) . منبعی که لینک آنجا قرار گرفته باید با موتور های جستجو آشنا باشد و قابل اعتماد باشد . همانطور که بالا هم اشاره کرده ام ، هر موتور جستجو قصد دارد کاربران خود را به بهترین شیوه ی ممکن به یک موضوع مرتبط ارجاع دهد . به همین منظور خزنده بین میلیون ها وب سایت میرود تا وب سایت ایده آل را برای جستجو کاربران نمایش دهد . در این سنجش ، موتور جستجو همه ی ارتباطات را بررسی میکند مخصوصا backlink ها را !
نکته ی مهم اینجا این است که موتور جستجو در بحث backlink ارتباطات بین لینک دهنده و لینک شونده را در سطوح مختلف بررسی میکند . مثلا محتویات درون یک صفحه ی خاص یا حتی ارتباط کلی وب سایت با جایی که لینک قرار داده شده است بررسی میشود .

2. برای backlink های خوب هزینه کنید  


برای بدست آوردن چیزهایی که واقعا ارزشمند است شما باید خودتان را به زحمت بیاندازید این عکس العمل دقیقا مشابه ساختن لینک های قوی است . سایت هایی که رتبه و اعتبار بالایی دارند در عوض قراردادن لینک شما تقاضای چیز ارزشمندی را دارند . اگر میخواهید ماهی بزرگی را بگیرید باید آستین خود را بالا بزنید و برایش تلاش کنید .

3.      فاکتور ترافیک و قدرت لینک


در روزهای اولیه اینترنت ، هدف backlink ها تنها ارجاع دادن شما از یک سایت به سایت دیگری بودند .
هنوز هم این مورد تغییر خاصی نکرده است ، یک لینک خوب هنوز هم توانایی تولید شمار زیادی از بازدیدکنندگان را دارد. ترافیک همچنان یک عامل مهم برای تعیین کیفیت یک لینک خاص است. اگر شانسی وجود ندارد که شما هر گونه ترافیک واقعی را به ارمغان بیاورید، احتمالا ارزش انجام آن را ندارد.
تشخیص اینکه  یک صفحه ی خاص قدرت بازدهی در ترافیک واقعی را دارد یا نه کار ساده ای نیست ، کار ساده ای نیست. اگر می خواهید بدانید که آیا یک لینک خاصی ارزشمند است یا نه روی این فاکتورها تمرکز کنید : Page Authority ، domain authority ، تعداد لینکهای صفحه،  لینک های فالو یا نوفالو ، مکان قرارگیری در صفحه  .

4.      انکر تکست  +  رابطه 

 

اگر با معنی Anchor text آشنا نیستید  اینطوری فرض کنید که انکر تکست همان لینک ساده است که با کلیک روی آن وارد یک سایت دیگری میشود با این تفاوت که در لینک نام سایت یا جایی که ارجاع داده میشود نوشته میشود مثلا یک لینکی با کلمه ی گوگل وجود دارد که با کلیک روی گوگل وارد صفحه ی اول گوگل خواهید شد .
یکی از اهداف انکر تکست خوب این است که قبل از کلیک کردن روی لینک ، تقریبا مشخص میشود که به کجا خواهید رفت مثلا وقتی روی یک لینکی کلیک میکنید که متن آن ویکیپدیا است مطمئن میشوید با کلیک روی آن وارد سایت ویکیپدیا خواهید شد .
انکر تکست ها واقعا بر روی رتبه بندی سئو سایت تاثیر مثبتی دارند و موتورهای جستجو از آنها به عنوان شاخص استفاده می کنند تا اطلاعات بیشتری درباره سایت و صفحه ای که از طریق این کلمه یا عبارت خاص لینک میشود ، یاد بگیرد .
بارها و بارها ثابت شده است که انکرتکست ها دارای اهمیت ویژه ای در نظر موتور جستجوی گوگل دارد .
اگر میخواهید انکرتکست های مثبت و مفیدی را ایجاد کنید سعی کنید کلمه ای را لینک دار کنید که به آن سایت و محتوای آن اشاره کند مثلا اگر میخواهید لینک سایت مارا قرار دهید بنویسید سایت آموزشی آواسام و لینک را روی این عبارت قرار دهید .

5. بک لینک های درون-محتوا

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


مطالب زیر ممکن است برای شما مفید باشد

 ریدایرکت 301 چیه و کی باید ازش استفاده کرد 8 راه سریع برای index صفحات شما توسط گوگل تگ های header را در سئو سایت دست کم نگیرید لینک های فالو (follow) در مقابل لینک های نوفالو (nofollow) در سئو سایت نوع فایل‌های تصویری مناسب وب در سال 2019

محصولات برگزیده مناسب شما

 کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین کارگاه آموزشی کار با Grunt js

پایان 👍

  • نفس کریمی زاده

فرقی نمیکند که فروشگاه اینترنتی خود را تازه ساخته باشید یا سالهاست روی آن کار کرده باشید ، مهم این است که بتوانید فروش خود را افزایش دهید و سوددهی فروشگاه خود را زیاد کنید . 

متاسفانه تجارت آنلاین فراز و نشیب های زیادی دارد اما هیچگونه جای دلسردی برای کسب و کار آنلاین شما وجود ندارد . 

اگر شما هم در جلب مشتری های جدید یا کسب درآمد بیشتر از طریق کسب و کار اینترنتی دچار مشکل هستید ، در این مقاله نکات مفیدی برای شما داریم . 

روش های قدیمی شما ممکن است دیگر کاربردی نباشد چون استراتژی های قدیمی ممکن است دیگر مورد توجه نباشند . 

ضروری است که کسب و کار خود را بطور مداوم با روند های جدید کسب و کار ها بروز نگهدارید . 

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

ما تمام این موارد را تجزیه و تحلیل کرده ایم و لیستی از راهنمایی هایی که واقعا کار میکند برای شما آماده کرده ایم . 

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

 

۱ - مشتریان فعلی خود را هدف قرار دهید . 

 

وقتی یک کسب و کار اینترنتی با مشکل فروش مواجه میشود سریعا فکر میکنیم به اندازه ی کافی مشتری نداریم . 

این یک تصور اشتباه است ، پس این نتیجه گیری برای فروشگاه اینترنتی شما اشتباه است . 

بجای تمرکز کردن روی جلب مشتری های جدید ، شما باید استراتژی خوبی برای نگهداری و حفظ مشتری های موجود پیاده سازی کنید . 

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

نحوه ی افزایش  فروش اینترنتی و کسب درآمد از طریق اینترنت - آموزش کسب درآمد از اینترنت

 

در مقایسه با مشتریان جدید و مشتریانی که تنها  یکبار خرید کرده اند ( مشتریان وفادار ) :

  • کالاهای بیشتری را به سبد خرید خود اضافه کرده اند 
  • درآمد بیشتری داشته اند 
  • زمانی که از سایت بازدید کرده اند سود بیشتری حاصل میشود 

اشتباه نکنید ، بدیهی است که شما مشتریان جدید را هم حفظ کنید کسب و کار شما عالی خواهد شد . 

اما چرا ؟ 

چون این افراد قبلا با برند شما آشنا شده اند . 

آنها میدانند چطور باید از محصولات شما استفاده کنند و پیچ و خم یادگیری برای آنها نیاز نیست .

بنابراین بر روی تجربه ی مشتریان تمرکز کنید و آنرا بهبود ببخشید . 

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

هر تومان که مشتریان خرج میکنند به یک نوع پاداش یا تخفیف برای خرید های بعدی تبدیل کنید . 

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

 

۲ - نمایش علامت های اعتماد سازی به فروشگاه : 

 

هیچکس دلش نمیخواهد از فروشگاه اینترنتی خرید کند که جعلی ، غیر اعتماد یا کلاهبردار باشد . 

یکی از مواردی که ابتدا باید از آن مطمئن شوید این است که وب سایت شما ایمن میباشد . 

امروزه نگرانی عمده ی خریداران امنیت سایبری است و برای اینکه اطلاعات فروشگاه شما ایمن باشد ( یا حداقل توسط مشتری ها اینطور تصور شود  ) از یک SSL کمک بگیرید . 

در ۵ سال گذشته در کشور ایالات متحده ی آمریکا ، ۴۶% خریداران اینترنتی قربانی دزدی اطلاعات کارت های بانکی شده اند . 

ایمن سازی فروشگاه های اینترنتی راه افزایش فروش اینترنتی در فروشگاه های اینترنتی است

برای بیشتر خریداران اینترنتی امنیت اطلاعات مهم ترین اولویت است . 

 

اما چه کاری میتوانید انجام دهید تا اینکه وب سایت شما قابل اعتماد باشد ؟ 

 

نشان های امنیتی و مورد اعتماد را در وب سایت خود به نمایش بگذارید . 

در کشور های خارجی استفاده از لوگو برنامه های امنیتی مورد استقبال است اما در سایت های ایرانی چندان استقبالی ندارد برای مثال چند نمودار مربوط به برنامه های امنیتی را در تصویر زیر میبنید که مورد اعتماد کاربران خارجی است : 

نماد اعتماد به فروشگاه اینترنتی - افزایش فروش اینترنتی - کسب درآمد از فروشگاه اینترنتی

 

در کشور ایران اعتماد سازی برای وب سایت ها و فروشگاه های اینترنتی از طریق قراردادن لوگوهای مختلفی ممکن میشود . 

در زیر نماد های اعتماد و لوگو های مورد استفاده ی محبوب را لیست کرده ایم 

  • یکی از آنها نماد اعتماد الکترونیکی است که توسط  وزارت صنعت، معدن و تجارت ایران به فروشگاه های اینترنتی اهدا میگردد . که هویت فیزیکی صاحب کسب و کار را تائید میکند و با دریافت مدارک هویتی از صاحب کسب و کار اهدا میگردد 
    نماد اعتماد - فروشگاه اینترنتی - افزایش فروش اینترنتی
  • دیگری لوگوی ستاد ساماندهی است که بصورت نقره ای و طلائی اهدا میکردد و نشان دهنده ی هویت صاحب دامنه و کسب و کار است 
    لوگو ستاد ساماندهی - نماد اعتماد - افزایش فروش اینترنتی و کسب و کارهای انلاین
  • لوگو بانکی که از درگاه پرداخت آن استفاده میکنید میتواند اعتماد کاربر را جلب کند زیرا بانک بعد از احراز هویت صاحب کسب و کار درگاه پرداخت را اهدا میکند و موجب اعتماد میشود
    آموزش افزایش فروش اینترنتی - آموزش درگاه پرداخت اینترنتی فروشگاه اینترنتی
  • لوگو و لوح تقدیر و افتخارات کسب شده در وب سایت قرار بگیرد زیرا باعث افزایش اعتماد کاربر و حذف برخی استرس ها برای خرید میشود . 

 

 

۳ - از ویدیو استفاده کنید . 

 

خریداران ویدیو را دوست دارند . 

در حقیقت، بیش از نیمی از کارشناسان بازاریابی در سراسر جهان می گویند که فیلم نسبت به سایر تکنیک های بازاریابی موثرتر است . ( لینک منبع ) 

بطور میانگین ، کاربران اینترنت ، ۸۸% بیشتر در وب سایت هایی که ویدیو دارند وقت میگذرانند . ( منبع )

علاوه بر این ، ویدیو یکی از بهترین راه های تبلیغاتی اینترنتی است که ثابت شده است تعریف و نمایش محصول توسط ویدیو باعث افزایش فروش آن خواهد شد . 

ویدیو باعث افزایش درگیری و همچنین علاقه ی بیشتر مشتری نسبت به آنچه میشود که شما قصد دارید به فروش برسانید .

ویدیو با مشتری ها درگیر میشود و با خواندن یک متن از یک محصول ، تفاوت زیادی دارد و مشتری به خوبی محصول را میشناسد و درک میکند و علاقه دارد بخرد . 

راه معقول برای اضافه کردن ویدیوهای مرتبط در سایت تجارت الکترونیک چیست؟

 

ویدیو مربوط به معرفی محصول خود را بسازید . نمونه ویدیوهای تبلیغاتی موجود در این لینک را ببینید  .

آموزش افزایش فروش اینترنتی

 

در ویدیوهای مثال بالا بخوبی نمایش داده میشود که مشتری چطور میتواند از محصول در زندگی روزانه ی خودش استفاده کند . 

در ویدیوهای وب سایت بالا در مورد محصول پایه ی وسایلی همچون گوشی هوشمند ، تبلت ، دستگاه های GPS و لپتاپ های سبک وزن صحبت میشود . 

قرار دادن ویدیو مخصوصا وقتی کاربرد محصولات ، بررسی و تحلیل آنها نیز نمایش داده شود در جذب مشتری بسیار موثر است . 

این ویدیوها کاربرد محصول در آشپزخانه، ماشین، اتاق خواب، قایق، دفتر، و حتی حمام را نشان میدهد بنابراین یک محدوده ی مکانی وسیعی برای استفاده در نظر مشتری ، تداعی میشود . 

اما این استراتژی لزوما برای تمام محصولات کاربردی نخواهد بود ، برای مثال وقتی شما یک پیراهن میفروشید قرار نیست از نحوه ی استفاده ی پیراهن ویدیو تهیه کنید . 

ولی اگر یک کیفیت خاص ، برند خاص یا هر چیزی که قابل تعریف باشد را میتوانید بصورت  ویدیو در بیاورید و برای تبلیغات محصول استفاده کنید . 

این یک استراتژی ایده آل برای فروشگاه های اینترنتی است که محصولات جدیدی را ارائه می دهند و ممکن است منحصر به فرد یا خلاق باشند .

 

۴ - در توصیه نامه از تصاویر اشخاص استفاده کنید .

 

بررسی و توصیه ی مشتریان قبلی ، یکی از قویترین راه ها برای اثبات کاربرد محصول است . اما اگر تجربه یا توصیه نامه ای که مینویسید از طرف شخصی مبهم و نامعلوم باشد برای مشتریان شما قانع کننده نخواهد بود . 

در نوشتن نظرات مشتریان سابق باید قدم دیگری بردارید . اطلاعات شخص را بصورت واضح به همراه تصویر او و شغل او ( اگر به محصول شما ربط دارد ) بنویسید . 

این فروشگاه مثال خوبی برای این کار است . 

آموزش فروش اینترنتی  آموزش افزایش فروش آنلاین ، راه کاری برای فروش بیشتر محصولات اینترنتی - نحوه ی صحیح تبلیغات محصول انلاین

در تصویر بالا میبینید که Bree Fata یک مربی بهداشتی است و در مورد محصولی که مربوط به محصولی که در زمینه ی شغلی او است صحبت میکند و انرا توصیف میکند پس برای مشتریان قطعا مفید خواهد بود . 

در مثال بالا یک تصویر واقعی از فرد ،  اعتماد را در مشتریان دیگر ایجاد میکند و باعث میشود که وقتی نظر را میخوانند احساس کنند واقعا محصول آن طور است . 

همانطور که میبیینید مثال بالا حرفه ای تر و بهتر به نظر میرسد و شما خودتان نیز مطمئنا از چنین جایی خرید میکنید . 

مثال بالا خوب است یا مثلا چنین نظری  : 

سلام این محصول عالی است . " نیکزاد "

 

مطمئنا مثال بالاتر بسیار مفید است و چون از تمام مشخصات واقعی و تصویر واقعی نظر دهنده استفاده شده باعث اعتماد بیشتر مشتریانی میشود که قصد خرید دارند . 

اینطور اظهارنامه ها که هویت فرد گوینده مشخص است مطمئنا برای افزایش فروش موثر خواهد بود . 

یک مثال دیگر برای درک این موضوع این وب سایت می باشد . 

آموزش افزایش فروش اینترنتی - آموزش راه اندازی و افزایش فروش اینترنتی فروشگاه های اینترنتی - بهبود فروشگاه اینترنتی

برای مثال این فروشگاه محصولات لوازم آرایشی مخصوص افرادی را میفروشد که موهای فرفری دارند . 

این وب سایت قادر است تجربیات خریداران را به اشتراک بگذارد  . 

اگر محصول شما یک مشکل را حل بکند مشتریان دوست دارند آنرا با دیگران به اشتراک بگذارند . 

 

۵ - از اپلیکیشن موبایلی غافل نشوید . 

 

اگر شما صاحب یک کسب و کار آنلاین هستید تصور نکنید که تمام مشتریان شما بوسیله ی کامپیوتر خود از سایت شما بازدید و خرید میکنند . 

در حالیکه آنها از موبایل و تبلت خود نیز برای خرید انلاین استفاده میکنند .

تحقیقات نشان میدهد ۴۰% از کاربران موبایل ، از طریق موبایل خود خرید انلاین داشته اند . 

علاوه بر این ۶۳% از افراد نسل هزاره ، از طریق موبایل خود خرید میکنند . 

این تعداد افراد را نمیشود نادیده گرفت ، پس حتما اطمینان حاصل کنید که وب سایت شما برای موبایل بهینه شده است . 

اگر فروشگاه انلاین شما ریسپانسیو نباشد به طرز چشم گیری مشتریان خود را از دست خواهید داد ، پس اگر فروش شما کم است احتمالا یکی از دلایل آن ، بهینه نبودن سایت شما برای موبایل است . 

بسیار عالی میشود که واکنش گرا کردن قالب فروشگاه خود را در اولویت قرار دهید .

راه کار دیگر ساختن یک اپلیکیشن قابل نصب روی موبایل است که این مشکل را حل میکند . 

در نمودار زیر اپلیکیشن قابل نصب را با یک وب سایت بهینه شده برای موبایل مقایسه کردیم : 

افزایش فروش اینترنتی - افزایش فروش فروشگاه اینترنتی - آموزش فروشگاه اینترنتی

در کل بهینه سازی وب سایت برای موبایل یا استفاده از اپلیکیشن موبایل باید ویژگی های زیر را داشته باشد تا فروش اتفاق بیوفتد : 

  • کار کردن با آن راحت باشد 
  • سرعت بالایی داشته باشد
  • تنظیمات یا موارد دلخواه کاربر ذخیره شود 
  • مزایا و پاداش درونش باشد
  • قابل شخصی سازی باشد 
  • قسمتی سرگرم کننده داشته باشد 

اگر وب سایت شما بصورت ریسپانسیو یا اپلیکیشن موبایل سایت شما این ویژگی ها را داشته باشد مطمئنا فروش موفقی خواهید داشت . 

 

۶ - تخفیفات زیادی قرار دهید . 

 

این تکنیک برای فروش بیشتر به نظر ساده میرسد ولی خیلی از فروشگاه های اینترنتی آنرا نادیده میگیرند . 

اگر سود شما کاهش می یابد نگران نباشید کمترین مقدار در حد توان را در نظر بگیرید ولی در عوض تخفیف قرار دهید . این راه کار خیلی سادست در عوض فروش شما و اعتبار شما بیشتر میشود . 

به سایت اکپسرس نگاهی بیاندازید . محصولات کلی تخفیف خورده اند و از آنجا استراتژی تخفیف محصولات را یاد بگیرید . 

افزایش فروش اینترنتی - آموزش افزایش فروش اینترنتی - بهبود فروش اینترنتی - کسب درآمد بیشتر از اینترنت

برخی اوقات تمام محصولات یا بیشتر انها را با ۴۰% تخفیف ارائه میکنند . 

خیلی از افراد تخفیف را دوست دارند و ناخودآگاه خرید میکنند پس این استراتژی را حتما در نظر داشته باشید . 

 

۷ - محصولات پرفروش خود را نمایش دهید . 

 

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

اگر شما محصولات زیادی را میفروشید برای کاربران ممکن است گیج کننده باشد مخصوصا کاربران جدید وب سایت . 

وقتی یک شخصی به سایت شما مراجعه میکند مجذوب محصولات پرفروش نیز میشود و ممکن است خرید اتفاق بیوفتد . 

در تصویر زیر فروشگاهی را میبینید که محصولات پرفروش را در صفحه ی اول قرار داده است : 

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

 

شما میتوانید در این بخش برخی محصولات را که احساس میکنید کاربران علاقه به خرید انها دارند در این لیست قرار دهید ( البته هیچکس نباید از این حقه مطلع شود )  . 

 

۸ - مناسبت ها را از دست ندهید . 

 

مناسبت های خاص مانند عید و ... روزهایی هستند که مردم دنبال خرید هستنند و نسبت به روزهای عادی بیشتر خرید میکنند .

به همین خاطر است که باید در مناسبت های مختلف پیشنهادات ، تخفیفات و تبلیغات های متناسب را بصورت فعالانه ارائه دهید . 

شما یک فرصت کوچک ولی فروش خیلی زیاد را در این زمان ها میتوانید به  دست بیاورید . 

بیایید به آماری که در زیر آمده است نگاهی بیاندازیم ( منبع آمار ) : 

آموزش افزایش فروش اینترنتی - آموزش راه اندازی فروشگاه اینترنتی - آموزش کسب و کار آنلاین - آموزش افزایش فروش

این آمار یک آمار جهانی است و در مناسبت های خاصی که برای آنها وجود دارد میبینید فروش خیلی بیشتر اتفاق میوفتد . این مورد برای کشور ایران نیز صدق میکند و در مناسبت های مختلف فروش فوق العاده زیاد میشود مخصوصا در تعطیلات عید نوروز ، قبل از عید نوروز ، اعیاد مختلف مذهبی ، مناسبت های مذهبی که در تقویم تعطیل هستند ، اکثر مناسبت های ایرانی و ....

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

به یاد داشته باشید در این مناسبت ها مردم دوست دارند برای خودشان ، خانواده و سایر بستگانشان هدایا خرید کنند . 

 

 ۹ - استراتژی به نام FOMO یا ایجاد ترس از دست دادن در مشتری : 

FOMO مخفف fear of missing out می باشد که به معنی ایجاد یک ترس در مشتری برای از دست دادن کالا است . شما باید یک عجله در مشتری ایجاد کنید که احساس کند به محصول شما فورا نیاز دارد و اگر آنرا الان تهیه نکند از دستش میرود .

این کار مشتری باعث میشود مشتری خرید خود را به آینده ای موکول نکند که ممکن است هرگز آن آینده از راه نرسد . یعنی مشتری سریعا تصمیم به خرید بگیرد و اگر مشتری خرید را به روز بعد موکول کند ممکن است دیگر خرید را انجام ندهد . 

مثلا کاری که میتوانید بکنید این است که به مشتری بگوئید تعداد اقلام موجود کم است و در حال اتمام است ( حتی اگر اینطور نباشد ) . 

خطوط هوایی مرتبا این کار را انجام میدهند تا فروش بیشتری داشته باشند . 

برای مثال این سایت را ببینید . 

آموزش افزایش فروش اینترنتی - آموزش فروش اینترنتی - نحوه ی افزایش فروش اینترنتی - فروشگاه های اینترنتی افزایش فروش

 

۴ عدد از ۶ عدد موجودی در تصویر بالا که مشاهده میکنید ، محدودیت تعداد دارد ، کمترین مقدار بلیط $۳۰۳,۲۰ می باشد ولی فقط یک عدد موجودی باقی مانده است  که در سمت چپ مشاهده میکنید . این استراتژی میتوانید یک حساسیت در مورد قیمت به مشتری بدهد تا تصمیم مشتری به خرید را تحریک کند . 

این ترس در مشتری ایجاد میشود که اگر همین الان آن یک بلیط باقیمانده را نخرد بعدا باید مبلغ بیشتری بپردازد و در این صورت مشتری این تصمیم را میگیرد که همین الان بخرد . 

راه دیگر انجام این استراتژی این است که فروش محصولات فوری اتفاق بیوفتد . 

اینجا یک مثال برای این مورد وجود دارد . 

آموزش افزایش فروش اینترنتی - آموزش مجبور کردن مشتری به خرید - فروش زیاد اینترنتی ، افزایش فروش اینترنتی محصولات

دوباره این مورد هم در مشتری اضطراب و ترس خرید سریع ایجاد میکند . 

فروش ویژه در نیمه شب قرار است تمام شود و اگر مشتری همین الان خرید نکند آنرا از دست خواهد داد . 

این حرکت بسیار کاربردی تر از ارسال کد تخفیف یا کوپن برای مشتریهاست که سر ماه انقضا آن است . 

 

۱۰ - روش های مختلف پرداخت را ایجاد کنید . 

انواع درگاه های بانکی برای فروشگاه های اینترنتی - افزایش فروش اینترنتی فروشگاه ها

شما باید روش های مختلف پرداخت را برای محصولات و خدمات خود در وب سایت ارائه دهید .  اگر شما فقط یک گزینه ی پرداخت را استفاده کنید ممکن است کاربرانی باشند که از  آن شیوه نتوانند پرداخت انجام دهند پس آن مشتری ها از دست شما میروند . 

در کشور ایران شما میتوانید از متدهای زیر برای انجام پرداخت استفاده کنید : 

  1. درگاه پرداخت مستقیم از بانک ها 
  2. درگاه پرداخت غیرمستقیم از شرکت های واسط پرداختی
  3. پرداخت از طریق کد ussd
  4. پرداخت درب منزل 
  5. پرداخت از طریق واریز به حساب یا شماره کارت و ارائه فیش واریزی 

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

مثلا اگر از بانک ملت درگاه دریافت کرده اید از بانک صادرات یا دیگر بانک ها نیز درگاه تهیه کنید 

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

پرداخت درب منزل مناسب افرادی است که یا اعتقادی به پرداخت اینترنتی ندارند یا توانایی آن را به هر دلیلی ندارند . این افراد دوست دارند بعد از اینکه پیک یا پست محصول را درب منزل آنها تحویل داد مبلغ را نقدا پرداخت کنند که این مورد نیز با بستن یک قرارداد با پست برای شما فراهم میشود . 

واریز به حساب هم مخصوص افرادی است که رمز دوم یا رمز خرید اینترنتی ندارند ولی میتوانند به حساب شما وجه را منتقل کنند . 

 

۱۱ - بر روی ارزش های محصول ارائه شده تمرکز کنید . 

 

به مشتریان خود بگوئید که محصول شما چه ویژگی ها و قوت ها را داراست که محصولات دیگر مشابه ندارند . 

آموزش افزایش فروش اینترنتی - افزایش فروش اینترنتی - راه اندازی فروشگاه اینترنتی و افزایش فروش در فروشگاه اینترنتی

جزئیات محصول باید با یک نگاه تمام ویژگی های محصول را به مشتری منتقل کند ، و این یک عملکرد برای جذب مشتری  است . 

سپس یک توضیح مختصر میتواند مفید باشد ، باید به ویژگی های اصلی محصول و نقاط قوت آن تاکید شود . 

 

. اتمام . 

 

 


مطالب زیر ممکن است برای شما مفید باشد

 تگ های header را در سئو سایت دست کم نگیرید رادیو صفر و یک - پادکست شماره ی 9 ام - اینترنت بی اینترنت رادیو صفر و یک - پادکست شماره ی 3 ام - شرکت جت برینز و محصولاتش برای برنامه نویسان رادیو صفر و یک - پادکست شماره ی 5 ام - دیپ فیک چیست ؟‌ آخرین مرز میان حقیقت و دروغ رادیو صفر و یک - پادکست شماره ی 1 ام - معرفی رادیو صفر و یک و زندگینامه ی گوینده

محصولات برگزیده مناسب شما

 کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین کارگاه آموزشی کار با Grunt js

پایان 👍

  • نفس کریمی زاده

لینوکس اوبونتو چیست ؟  لینوکس ubuntu چیست ؟ آموزش لینوکس ubuntu ؟ آموزش لینوکس

 

لینوکس ubuntu چیست ؟ 

 

ubuntu محبوب ترین توزیع سیستم عامل لینوکس در جهان است . ممکن است ubuntu بهترین توزیع باشد یا نباشد ولی در حال حاضر محبوبترین است . 

این توزیع از لینوکس یا بعبارتی دیگر برند " ubuntu " توسط شرکت Canonical  جهت استفاده خانگی ، استفاده روی سرور یا برای کاربردهای دیگر توسعه داده شده است .

همچنین ubuntu محبوب ترین سیستم عامل برای کلاد ( cloud ) میباشد .

شرکت گوگل محیط توسعه ی خود برای سیستم عامل اندروید را در محیط ubuntu آماده کرده است و بسیاری از جاهای دیگر ubuntu محبوب است ، به طوری که وقتی بسیاری از افراد به لینوکس فکر میکنند به احتمال زیاد ، به ubuntu فکر میکنند . 

لینوکس چیست ؟ linux چیست ؟ آموزش لینوکس ، آموزش Linux

پس لینوکس در چیست ؟ 

 

اگر چه در سرتاسر اینترنت مطالبی در مورد لینوکس موجود است ، اما بسیاری از اافراد هنوز نمیدانند لینوکس واقعا چیست . 

اگر بخواهیم بصورت حرفه ای تعریف کنیم ، لینوکس یک هسته است ، هسته ای برای سیستم عامل کامپیوتر ها .

این هسته ی لینوکس گسترده تر از چیزی است که مردم بعنوان هسته ی سیستم عامل اندروید تصور میکنند . 

وقتی از سیستم عامل لینوکس صحبت میکنیم ، در حقیقت منظور مخلوطی از هسته ی لینوکس به همراه برخی از ابزارهای اوپن سورس میباشد که بیشتر مربوط به پروژه گنو هستند و به آنها گنو/لینوکس گفته میشود . 

برای بیان ساده تر ، گنو/لینوکس ( که به اشتباه لینوکس گفته میشود ) یک سیستم عامل اوپن سورس است که بر روی هسته ی لینوکس ساخته شده است و شاخته ای از سیستم عامل یونیکس میباشد ، گنو/لینوکس پسرعموی دو سیستم عامل BSD و macOS میباشد .

هر چند برنامه های ساخته شده برای این سیستم ها  بصورت مستقیم در لینوکس کار نمیکند ولی معمولا برای لینوکس قابل پورت شدن است . 

خلاصه اینکه سیستم عامل های اساسی مشابه هم هستند و تغییر سیستم عامل از لینوکس به مک یا برعکس سخت نخواهد بود . 

آموزش لینوکس ، آموزش Linux ، دبیان چیست ؟

  ubuntu چطور شروع به کار کرد ؟ 

 

لینوکس ubuntu از ابتدا به این اندازه محبوب نبوده است ، در حقیقت ubuntu هنوز یک توزیع جوان است . با توجه به آنچه گفته شد ، محبوبیت و ارتقای ubuntu همزمان با محبوبیت لینوکس اتفاق میوفتد . 

ریشه ی توزیع ubuntu ، توزیع دیگر لینوکس به نام دبیان است . دبیان نیز یکی از قدیمی ترین و محبوبترین توزیع های لینوکسی میباشد و پیشرفت های زیادی را به وجود آورده است که کاربران مدرن لینوکس روز به روز بر آن تکیه می کنند .

Mark Shuttlesworth یک کارآفرین در آفریقای جنوبی که طرفدار دبیان بود و زمانی که شرکت خود را تاسیس میکرد با آن کار میکرد .

آقای Shuttlesworth  تصمیم گرفت یک توزیع جدیدی برای لینوکس بسازد و نام آن را ubuntu گذاشت . 

نصب و راه اندازی دبیان در سال ۲۰۰۴ بسیار سخت بود و یکی از اهداف اولیه ubuntu رفع کردن این مشکل بود به عبارتی دیگر هدف اصلی ubuntu این بود که عموم مردم به سادگی از یک توزیع بتوانند استفاده کنند . 

سیستم های دسکتاپ در انحصار مایکروسافت بود و ubuntu میخواست آنرا تغییر دهد . 

 نسخه های ابتدایی توزیع ubuntu بر ابزارهای رابط کاربری تمرکز بیشتری داشت همانند نصب کننده ی گرافیکی که باعث جذب کاربران زیادی به سمت این توزیع شد . 

ubuntu کامپیوتر شما را برای خود شما تنظیم میکند که قبلتر در دنیا لینوکس همچین چیزی وجود نداشت . 

ubuntu یک دسکتاپ کاملا آماده ، ساده و قابل استفاده برای کاربران عادی را فراهم میکند .

ubuntu نقاط ضعف لینوکس را رفع کرد مثل ساخت برنامه های جانبی ، درایورها ، دسترسی راحت و ... .

بطور واضح ، تلاش برای در دسترس قراردادن لینوکس برای همه ، با ubuntu محقق شد چون ubuntu به زودی در قلب کاربران جدید لینوکس و همچنین کاربران قدیمی جای باز کرد . 

آموزش لینوکس ، آموزش Linux ، کاربرد لینوکس ، کاربرد linux

با ubuntu چه کارها میشود انجام داد ؟ 

 

شاید قبلا از این موضوع اطلاع نداشتید ولی شما با توزیع ubuntu لینوکس ، هر کاری را که بخواهید میتوانید انجام دهید . 

ubuntu یک توزیع لینوکسی قدرتمند و همه کاره است . بصورت تئوری شما میتوانید ubuntu را روی هر دستگاهی نصب و اجرا کنید و به عبارتی دیگر ubuntu روی کامپیوتر خانگی ، لپتاپ و گوشی های هوشمند قابل نصب است . 

شما میتوانید ubuntu را روی سرور نصب کنید و وب سایت خود را میزبانی کنید ، شما میتوانید در یک دستگاه متصل به شبکه جهت تهیه نسخه ی پشتیبان از  فایل های خود استفاده کنید . 

شما میتوانید ubuntu را روی Raspberry Pi نصب کنید تا در دستگاه های اینترنت چیزها بتوانید استفاده کنید . سرانجام ، میتوانید به روتر سفارشی خود متصل کنید که با ubuntu اجرا میشود . 

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

اگر این مطلب را میخوانید به احتمال زیادی دوست دارید ubuntu را روی کامپیوتر خانگی یا لپتاپ خود نصب کنید و نگران این هستید که آیا برنامه های ویندوزی یا مک شما پیدا میشود یا نه ؟

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

اکثر درایورهای سیستم شما اعم از گرافیک و کارت صدا و ... برای ubuntu موجود است و البته برای اطمینان بیشتر نام درایور خود را برای ubuntu در اینترنت سرچ کنید و سپس اقدام به نصب لینوکس ubuntu بکنید . 

آموزش لینوکس ، آموزش linux ، آینده ی لینوکس ، آینده ی اوبونتو ، آینده ی ubuntu

آینده ی ubuntu چطور است ؟ 

 

سخت است بگوئیم چه بر سر ubuntu خواهد آمد اما ubuntu همچنان بعنوان یک بازیگر اصلی در تکنولوژی های جهان نقش بازی میکند . 

ubuntu همیشه در زمینه ی رایانش ابری مورد علاقه است و همچنان به پیشرفت خود ادامه میدهد . همچنین ubuntu در زمینه ی هوش مصنوعی و یادگیری ماشین مطرح است . 

ubuntu یک نسخه ی خاص برای اینترنت چیزها دارد ، Ubuntu Core نام دارد همچنان در این زمینه در حال پیشرفت است . 

از آنجایی که شرکت IBM ، توزیع Red Hat لینوکس ، را به تصرف خود درآورد ، شرکت Canonical  که توسعه دهنده ی ubuntu است بزرگترین شرکت مستقل لینوکسی است . 

 بسته به  سیاست های شرکت IBM برای Red Hat، کاربران سابق Red Hat و CentOS می توانند به ubuntu سوئیچ کنند .

ubuntu به عنوان بزرگترین بازیکن در دسکتاپ و دنیای کسب و کار است و به احتمال زیاد خواهد بود . 

هر آنچه که به سر ubuntu در آینده خواهد آمد ، کاملا روشن است . همه نشانه ها به رشد مداوم کانونیکال و ubuntu در دنیای کسب و کار و بهبود قابلیت استفاده و سازگاری کاربران خانگی ubuntu اشاره دارد.

 

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

 

. اتمام . 

  • نفس کریمی زاده

تمامی مطالب مفید برنامه نویسی که پیدا میکنم میزارم اینجا