# Convert to List

## List to Swift/Android code

If you need to display scrolling elements dynamically, you should check if they are lists or [grids](/v1-mac-app/working-with-monday-hero/component-convert-to-ios-android-code/list-grid-design-to-ios-android-code/grid-design-to-ios-android-code.md). You can find [how to understand the difference here](/v1-mac-app/working-with-monday-hero/component-convert-to-ios-android-code/list-grid-design-to-ios-android-code.md). If you have decided that you want to create lists, this is right please to read.

An example of a list is below. In the image, the cell prototype repeats itself with different data inside.&#x20;

![List Example](/files/-MK4Ga0SHdZYpS9275Su)

Lists are called different names in iOS and Android. They are explained below with the code and details.&#x20;

### Generated code for iOS/Android and Details

{% tabs %}
{% tab title="iOS" %}

## TableView

Lists are called in`TableView` Swift language. With `TableView`, you can view a group that aligns all children in a single direction. In`TableView`, no matter how wide they are, the vertical list has only one child per row, and your list will only be the one-row height(Height of the tallest child + padding).

`CellPrototype`wraps a layout and will often be the container used in a layout for each item within a `TableView`. Let's check the generated code.

TableView is added to the page's View Controller file.&#x20;

{% code title="ListPageViewController.swift " %}

```swift
import UIKit

class ListPageViewController: UIViewController {

//Connection from an Interface Builder to a UI component
@IBOutlet private weak var explorePostsTableView: UITableView!

	override func viewDidLoad() {
		super.viewDidLoad()
		setupViews()
	}
}

extension ListPageViewController {
	private func setupViews() {
	
		//TableView properties
		self.explorePostsTableView.rowHeight = UITableView.automaticDimension
		self.explorePostsTableView.estimatedRowHeight = 30
		self.explorePostsTableView.dataSource = self	

	}
	
}		

// MARK: - Table View DataSource

extension ListPageViewController: UITableViewDataSource {
	func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
		return 1
	}

	func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
		let cell = tableView.dequeueReusableCell(withIdentifier: "ExplorePostTableViewCell") as! ExplorePostTableViewCell
		return cell
	}
}
```

{% endcode %}

The Cell is added as a separate file.&#x20;

{% code title="ExplorePostsTableViewCell.swift" %}

```swift

import UIKit
import SnapKit

class ExplorePost: UITableViewCell {
	
	// MARK: - Properties
	@IBOutlet private weak var photoImageView2: UIImageView!
	@IBOutlet private weak var rosieDelLabel: UILabel!
	@IBOutlet private weak var likesLabel: UILabel!
	@IBOutlet private weak var heartLikedImageView: UIImageView!

	override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
		super.init(style: style, reuseIdentifier: reuseIdentifier)
		self.setupViews()
	}

	required init?(coder aDecoder: NSCoder) {
		super.init(coder: aDecoder)
	}

	func setupViews() {
		
		rosieDelLabel.text = NSLocalizedString("rosie.del", comment: "")
		rosieDelLabel.textColor = UIColor.porpoise
		rosieDelLabel.numberOfLines = 0
		rosieDelLabel.font = UIFont.textStyle2
		rosieDelLabel.textAlignment = .left

		likesLabel.text = NSLocalizedString(".likes2", comment: "")
		likesLabel.textColor = UIColor.anchor2
		likesLabel.numberOfLines = 0
		likesLabel.font = UIFont.textStyle6
		likesLabel.textAlignment = .right

	}
}
```

{% endcode %}
{% endtab %}

{% tab title="Android" %}

## RecyclerView-LinearLayoutManager

In Android lists are used with `RecyclerView`and`LinearLayout`. The repetitive cells are `CardView`&#x20;

With `LinearLayout`, you can view a group that aligns all children in a single direction. In`LinearLayout`, no matter how wide they are, the vertical list has only one child per row, and your list will only be the one-row height(Height of the tallest child + padding).

![Android RecyclerView and CardView](/files/-MHFQG7NhUfspOqdnQSq)

`CardView` wraps a layout and will often be the container used in a layout for each item within a `RecyclerView`. Let's check the generated code.

```markup
<!--activityListPage.xml-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/explorePicturesRecyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/layout_explore_post_card_view"
android:layout_marginStart="20dp"
android:layout_marginEnd="19dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/popularTextView"
app:layout_constraintBottom_toBottomOf="parent"/>
```

```markup
<!--LayoutExplorePhotoCardView.xml-->
<androidx.cardview.widget.CardView
	xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:app="http://schemas.android.com/apk/res-auto"
	xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="match_parent"
	android:layout_height="wrap_content">
	
	<androidx.constraintlayout.widget.ConstraintLayout
	android:layout_width="match_parent"
	android:layout_height="wrap_content">
	
	<ImageView
	android:id="@+id/photoImageView"
	android:layout_width="0dp"
	android:layout_height="wrap_content"
	android:src="@drawable/photo"
	android:scaleType="centerCrop"
	android:layout_marginEnd="0dp"
	android:layout_marginBottom="13dp"
	app:layout_constraintStart_toStartOf="parent"
	app:layout_constraintEnd_toEndOf="parent"
	app:layout_constraintTop_toTopOf="parent"
	app:layout_constraintBottom_toTopOf="@+id/rosieDelTextView"/>
	
	<TextView
	android:id="@+id/rosieDelTextView"
	android:layout_width="0dp"
	android:layout_height="wrap_content"
	android:text="@string/rosie_del"
	style="@style/textStyle2"
	android:textAlignment="textStart"
	android:textColor="?attr/porpoise"
	android:layout_marginEnd="8dp"
	app:layout_constraintStart_toStartOf="parent"
	app:layout_constraintEnd_toStartOf="@+id/likesTextView"
	app:layout_constraintTop_toBottomOf="@+id/photoImageView"
	app:layout_constraintBottom_toBottomOf="parent"/>
	
	<TextView
	android:id="@+id/likesTextView"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:text="@string/_likes"
	style="@style/textStyle6"
	android:textAlignment="textEnd"
	android:textColor="?attr/anchor2"
	android:layout_marginEnd="8dp"
	android:layout_marginTop="13dp"
	app:layout_constraintStart_toEndOf="@+id/rosieDelTextView"
	app:layout_constraintEnd_toStartOf="@+id/heartLikedImageView"
	app:layout_constraintTop_toBottomOf="@+id/photoImageView"
	app:layout_constraintBottom_toBottomOf="parent"/>
	
	<ImageView
	android:id="@+id/heartLikedImageView"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:src="@drawable/heartliked"
	android:layout_marginTop="14dp"
	android:layout_marginBottom="1dp"
	app:layout_constraintStart_toEndOf="@+id/likesTextView"
	app:layout_constraintEnd_toEndOf="parent"
	app:layout_constraintTop_toBottomOf="@+id/photoImageView"
	app:layout_constraintBottom_toBottomOf="parent"/>
	
	</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.mondayhero.io/v1-mac-app/working-with-monday-hero/component-convert-to-ios-android-code/list-grid-design-to-ios-android-code/list-design-to-ios-android-code.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
